JAvaで作ったタイマー


/** * 実装クラス */import java.util.Timer;
public class Test{ public Test(){}  public void run() {  MyTask myTask = new MyTask();    Timer timer = new Timer(true);  timer.schedule(myTask,0,1000);      //test system process  while(true)  {   System.out.println("system in working !");   try {    Thread.currentThread().sleep(3000);   } catch (InterruptedException e) {    //TODO Auto-generated catch block    e.printStackTrace();   }  } }  /**  * @param args  */ public static void main(String[] args) {  //TODO Auto-generated method stub  Test test = new Test();  test.run(); }
 }
/** * タスク実行クラス */import java.util.TimerTask;
public class MyTask extends TimerTask{ /**  * default construction  */ public MyTask(){};  /**  * run function  */ public void run() {  //do somthing  System.out.println("new task is working !!"); }}
 
public Timer(boolean isDaemon)
 
新しいタイマを作成します.関連するスレッドをデーモンとして実行するように指定します.タイマが「≪メンテナンス・アクティビティ|Maintenance Activity|emdw≫」の繰り返しをスケジュールするために使用される場合は、アプリケーションの実行中にデーモン・スレッドを呼び出す必要がありますが、プログラムのライフサイクルを延長することはできません.
 
パラメータ:isDaemon-関連するスレッドをデーモンとして実行する必要がある場合はtrueです.
  デーモンスレッドと一般スレッドの唯一の違いは、JVM内のすべてのスレッドがデーモンスレッドである場合、JVMは終了することができ、もう1つ以上のデーモン以外のスレッドがある場合は終了しないことです(以上、通常の終了に対してSystem.exitを呼び出すと必ず終了します).      だからsetDeamon(true)の唯一の意味は、JVMが終了するのを待つ必要がないことを教えて、JVMに好きなように終了させましょう.気にしないでください.      どんなスレッドでも必ずタイムスライスに分けて実行され、上の検出スペルや入力とは何の関係もありません.