public void timeTask(){ Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { //方法体 System.out.println("执行中。。。"); } }, 0, 5*60*1000);//经过0ms开始第一次调用,然后每隔5*60*1000ms执行一次。 }
schedule()方法参数说明: 1、调度一个task,经过delay(ms)后开始进行调度,仅仅调度一次。
public void schedule(TimerTask task, long delay)
2、在指定的时间点time上调度一次。
public void schedule(TimerTask task, Date time)
3、调度一个task,在delay(ms)后开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, long delay, long period)
4、调度一个task,在firstTime时开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, Date firstTime, long period) scheduleAtFixedRate()(可以代替schedule()方法)方法参数说明: 1、调度一个task,在delay(ms)后开始调度,然后每经过period(ms)再次调度。
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
2、调度一个task,在firstTime时开始调度,然后每经过period(ms)再次调度。
public void scheduleAtFixedRate(TimerTask task, Date firstTime,long period) schedule方法和scheduleAtFixedRate方法比较: schedule在计算下一次执行的时间的时候,是通过当前时间(任务执行前得到) + 时间间隔,参考时间是运行的实际时间。
scheduleAtFixedRate方法是通过当前需要执行的时间(就是计算出现在应该执行的时间)+ 时间间隔,参考时间是理论时间点。