java timer 执行任务

时间:2023-03-09 05:04:44
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那个时刻点