java.util.Timer定時器,實際上是個線程,定時排程所擁有的TimerTasks。
一個TimerTask實際上就是一個擁有run方法的類,需要定時執行的代碼放到run方法體内,TimerTask一般是以匿名類的方式建立。
一個完整的Timer:
Java代碼
1. java.util.Timer timer = new java.util.Timer(true);
2. // true 說明這個timer以daemon方式運作(優先級低,
3. // 程式結束timer也自動結束),注意,javax.swing
4. // 包中也有一個Timer類,如果import中用到swing包,
5. // 要注意名字的沖突。
6.
7. TimerTask task = new
8. public void
9. ... //每次需要執行的代碼放到這裡面。
10. }
11. };
12.
13. //以下是幾種排程task的方法:
14.
15. timer.schedule(task, time);
16. // time為Date類型:在指定時間執行一次。
17.
18. timer.schedule(task, firstTime, period);
19. // firstTime為Date類型,period為long
20. // 從firstTime時刻開始,每隔period毫秒執行一次。
21.
22. timer.schedule(task, delay)
23. // delay 為long類型:從現在起過delay毫秒執行一次
24.
25. timer.schedule(task, delay, period)
26. // delay為long,period為long:從現在起過delay毫秒以後,每隔period
27. // 毫秒執行一次。
下面是一個完整的例子,由兩個類組成,一個定制任務,一個調用java.util.Timer
定制任務:
Java代碼
1. import
2.
3. public class TimerTaskTest extends
4.
5. @Override
6. public void
7. // TODO Auto-generated method stub
8. "start");
9. }
10. }
2.調用java.util.Timer
Java代碼
1. import
2.
3. public class
4. public static void
5. new
6. new TimerTaskTest(), 1000, 2000);
7. }
8. }