定时功能在一些任务调度平台非常常见,Java中也有quartz工具来完成比较复杂的定时任务(具体使用会后续发出博文)。本片文章主要介绍基于Timer的定时任务
需求介绍:实现不同定时间隔的两个任务依次循环触发(间隔两秒触发事件一,再间隔四秒触发事件二)
代码实现:
package com.zh.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class IntervalTimerTest {
private static int count = 0;
public static void main(String[] args) {
class myTimer extends TimerTask {
@Override
public void run() {
count = (count + 1) % 2;
System.out.println("触发事件");
new Timer().schedule(new myTimer(), 2000 + 2000 * count);
}
}
new Timer().schedule(new myTimer(), 2000);
while(true) {
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
测试运行结果: