java中Timer和TimerTasks

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. TimerTask task = new TimerTask() {   

  7. public void run() {   

  8. ... //每次需要执行的代码放到这里面。   

  9. }   

  10. };    

  11. //以下是几种调度task的方法:   

  12.   

  13. timer.schedule(task, time);   

  14. // time为Date类型:在指定时间执行一次。   

  15.   

  16. timer.schedule(task, firstTime, period);   

  17. // firstTime为Date类型,period为long   

  18. // 从firstTime时刻开始,每隔period毫秒执行一次。   

  19.   

  20. timer.schedule(task, delay)   

  21. // delay 为long类型:从现在起过delay毫秒执行一次   

  22.   

  23. timer.schedule(task, delay, period)   

  24. // delay为long,period为long:从现在起过delay毫秒以后,每隔period   

  25. // 毫秒执行一次。  


下面是一个完整的例子,由两个类组成,一个定制任务,一个调用java.util.Timer 

定制任务: 

Java代码  

  1. import java.util.Timer;  

  2.   

  3. public class TimerTaskTest extends java.util.TimerTask{  

  4.   

  5. @Override  

  6. public void run() {  

  7.    // TODO Auto-generated method stub  

  8.    System.out.println("start");  

  9. }  

  10. }  

2.调用java.util.Timer 

Java代码 

  1. import java.util.Timer;  

  2.   

  3. public class Test {  

  4. public static void main(String[] args){  

  5.    Timer timer = new Timer();  

  6.    timer.schedule(new TimerTaskTest(), 10002000);  

  7. }  

  8. }  

根据上面的介绍,便可以在1秒后,每隔2秒执行一次程序 


你可能感兴趣的:(Timer;TimerTask)