Java定時調度 Timer類和TimerTask類

Timer類是一種線程設施,可以用來實現某一個時間或某一段時間後安排某一個任務執行一次或定期重複執行。該功能和TimerTask配合使用。TimerTask類用於實現由Timer安排的一次或重複執行的某個任務。每一個Timer對象對應的是一個線程,因此計時器所執行的任務應該迅速完成,否則會延遲後續的任務執行。
[color=red]Timer類方法摘要[/color]
 void cancel() 
終止此計時器,丟棄所有當前已安排的任務。
int purge()
從此計時器的任務隊列中移除所有已取消的任務。
void schedule(TimerTask task, Date time)
安排在指定的時間執行指定的任務。
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任務在指定的時間開始進行重複的固定延遲執行。
void schedule(TimerTask task, long delay)
安排在指定延遲後執行指定的任務。
void schedule(TimerTask task, long delay, long period)
安排指定的任務從指定的延遲後開始進行重複的固定延遲執行。
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
安排指定的任務在指定的時間開始進行重複的固定速率執行。
void scheduleAtFixedRate(TimerTask task, long delay, long period)
安排指定的任務在指定的延遲後開始進行重複的固定速率執行。


[color=red]TimerTask類方法摘要 [/color]
boolean cancel() 
取消此計時器任務。
abstract void run()
此計時器任務要執行的操作。
long scheduledExecutionTime()
返回此任務最近實際 執行的已安排 執行時間。


TimerTask類是個抽象類,如果要用該類,需要自己建立一個類來繼承此類,並實現其中的抽象方法。
package zzs.time.demo;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class MyTask extends TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat simpleDateFormat=null;
simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println("當前的系統時間爲:"+simpleDateFormat.format(new Date()));

}

}


package zzs.time.demo;

import java.util.Timer;

public class TestTask {

/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Timer timer=new Timer();
MyTask myTask=new MyTask();
timer.schedule(myTask, 1000, 2000);
// Thread.sleep(5000);
//timer.cancel();

}
}



運行結果:
當前的系統時間爲:2011-07-10 15:37:44:831
當前的系統時間爲:2011-07-10 15:37:46:786
當前的系統時間爲:2011-07-10 15:37:48:786
當前的系統時間爲:2011-07-10 15:37:50:786
當前的系統時間爲:2011-07-10 15:37:52:786
當前的系統時間爲:2011-07-10 15:37:54:786
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章