java中定时执行任务

时间:2021-06-26 07:56:10

现在项目中用到需要定时去检查文件是否更新的功能。timer正好用于此处。

用法很简单,new一个timer,然后写一个timertask的子类即可。

代码如下:

[java] view plain copy 
  1. package comz.autoupdatefile;  
  2.   
  3. import java.util.Timer;  
  4. import java.util.TimerTask;  
  5.   
  6. public class M {  
  7.     public static void main(String[] args) {  
  8.         // TODO todo.generated by zoer  
  9.         Timer timer = new Timer();  
  10.         timer.schedule(new MyTask(), 1000, 2000);  
  11.     }  
  12. }  
  13.   
  14. class MyTask extends TimerTask {  
  15.   
  16.     @Override  
  17.     public void run() {  
  18.         System.out.println("dddd");  
  19.   
  20.     }  
  21.   
  22. }  

这样,就可以在1秒钟之后开始执行mytask,每两秒钟执行一次。

当然,timer的功能也可以通过自己构造线程,然后在线程中用sleep来模拟停止一段时间,然后再执行某个动作。

其实,看一下timertask的源码就立即可以知道,timertask就是实现了runnable接口的。也就是说,通过timer来间隔一段时间执行一个操作,也是通过一个线程来做到的。

【这样就节省自己写线程的时间啦】