天天看點

Timer定時器的使用

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. }