java timer 执行任务

1. 建立timer

import java.util.Timer;
import java.util.TimerTask;

public class Start 
{
  public class Start 
  {
    private static final int RT_TIME_INTERVAL = 30*1000; //30s
    public static void main(String[] args) 
    {    
      TimerTask task = new MyTask();
      Timer    timer = new Timer ();      
      timer.schedule(task,0,RT_TIME_INTERVAL); 
          /*timer.scheduleAtFixedRate(arg0, arg1, arg2);*/
    }
    }
}

2.建立task,实现run方法

import java.util.List;
import java.util.TimerTask;

public class MyTask extends TimerTask {        
    @Override
    public void run() 
    {
         System.out.println("My task begins");  
         System.out.println(new Date());            
    }
}

关于task执行时间的几点说明:

1.假设task每5s执行一次,任务执行了3s,下一次任务会在2s后执行。

2.如果任务执行了8s。会在此任务结束后立刻开始下一次任务。不会在同一时刻同时执行2个任务。

3.scheduleAtFixedRate情况稍微复杂,假如第一次任务执行8s,第二次执行了2s,第三次也不会等(5-2)s,会立即执行,会去凑5,10,15那个时刻点

原文地址:https://www.cnblogs.com/xiangyu5945/p/6226243.html