Java定时器Timer
public static void main(String[] args) {
// 5秒之后 每1秒执行一次
Timer timer1 = new Timer();
timer1.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("hello11111");
}
}, 5000, 1000);
// 5秒之后 执行一次
Timer timer2 = new Timer();
timer2.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("hello22222");
}
},5000);
// 当前时间执行一次 然后每5秒执行一次
Timer timer3 = new Timer();
timer3.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("hello33333");
}
},new Date(),5000);
}
// 指定时间执行
@Test
public void testTimer() throws Exception {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String end = "2019-06-14 15:15:00";
//开启任务
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
}
}, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(end)
);
System.out.println();
//timer.cancel(); // 取消队列任务
//timer.purge(); // 方法调用返回从队列中删除的任务数。
timer.schedule(new TimerTask() {
@Override
public void run() {
for (int i = 6; i < 10; i++) {
System.out.println(i);
}
}
}, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(end)
);
}
注:Timer有个坑的地方,假如有两个Timer在同某时刻同时执行,这个顺序是保证不了的,解决办法就是,不要用俩Timer,就用一个,这样的话虽然是同一时间执行,但是谁在上面谁就先执行。。。