이 기사에서는 스레드 풀링 및 반사 메커니즘을 기반으로 타이밍 작업을 구현하는 Java의 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
주로 다음 구현 클래스가 포함됩니다.
1. 메인 클래스 :
작업 실행 입력 :
작업 구성로드 및 작업 실행을 시작하려면 기본 메소드를 호출하십시오.
com.yanek.task; @ param args * / public static void main (string [] args) {scheduledexecutorservice scheduexec.newscheduledthreadpool (1); tm.setmethodname (testa); i ++) {taskModel tm = (taskModel) tasks.get (i);2. MyTask 클래스는 런닝 가능한 인터페이스를 구현하고 메인 클래스에서 호출합니다.
com.yanek.task; mytask (taskModel tm) {this.taskModel = tm; void run () { " + (new date ()); (taskModel. getClassName ()); e.printstacktrace ()} catch (classnotfoundexception e) {nosuchmethodexception e) {e.printstacktrace}; e) {e .printstacktrace ();3. TaskModel : 작업 클래스의 캡슐화
com.yanek.task; public string getClassName (return classname) {string classnam e) {className = className; (String MethodName) {methodname = methodname;} return initialdelay (long i nitialdelay) {initialdelay = public getperiod; setperiod (private string methodname);4. XMLREADER 작업 구성 해상도 클래스
com.yanek.task . 문서; import org.jdom.jdomexcept; getTasks () {list tasks = system.out.println; 파일 (path); if (file.exists () &&! file.isdirectory ()) {saxbuilder sx = new SaxBuilder (); list <emential> children = rootlement.getChildren (int i = 0; i <children.size (); i ++. .GetChildText ( "class"); .println (childs.get (i) .getChildText ( "method"); children.get (i). ); System .out.println ( "첫 번째 실행은 여전히 나쁘다" + 이니셜 + "초! "); tmodel.setperiod (integer.valueof (childs.get (i) .getchildtext ("period ")); system.out.println (childs.get (i) .getchildText ("period "));))). 작업. ADTS (TMODEL)} CATCH (NumberFormateXception e) {// TODO가 자 자동 생성 된 CATCH (jdomexception e); )} catch (ioexception e) {// todo auto-regended catch block e.printstacktrace () {system.out.println; AD 작업 구성 "); 반환 작업;}}5. 구성 파일 :
<? xml version = "1.0"encoding = "utf-8"?> <taskconfig> <aitd> <class> com.yanek.task.taska </class> <methob> testa </methogne <titenitdelay> 5 < /initialDelay> <peury> 2 </period> </task> <avect> <class> com.yanek.task.taskb </class> <methob> testb </methoed> <itialdelay> 5 </initialDelay> <period > 3 </later> </task> <sablic> <class> com.yanek.task.taskc </class> <method> testc </methogne <earterndelay> 5 </initialdelay> <prusice 3 </period > </task> </taskconfig>
6. 테스트 작업 클래스 :
Taska Taskb Taskc 정적 메소드를 정의하고 이러한 클래스의 정적 메소드는 XML 파일로 구성되어 호출됩니다.
com.yanek.task; public class taska { / ** * public static void main (string.out.println (task a test”); () {System.out.println ( "Taska Testa Method!" ) {System.out.println ( "작업 B 테스트")} public static void testb () { "taskb testb method call!"); taskc { / ** * @param args * / public static void main (string [] args) {system.out.println ( "task c test"); taskc testc 메소드 호출! ");}}이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.