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那个时刻点