一、Timer
Timer是JAVA自带的定时任务类,实现如下:
public?class?MyTimerTask?{????
public?static?void?main(String[]?args)?{????????
//?定义一个任务???????
? TimerTask?timerTask?=?new?TimerTask()?{????????????
@Override????????????
public?void?run()?{????????????????
System.out.println("打印当前时间:"?+?new?Date());????
???????? }???????
? };????????
//?计时器???????
? Timer?timer?=?new?Timer();???????
? //?开始执行任务 (延迟1000毫秒执行,每3000毫秒执行一次)????????
timer.schedule(timerTask,?1000,?3000);????
}
}
Timer 优缺点分析
优点是使用简单,缺点是当添加并执行多个任务时,前面任务的执行用时和异常将影响到后面任务,这边深海建议谨慎使用。
二、ScheduledExecutorService
ScheduledExecutorService也是Java自带的类,
它可以实现Timer具备的所有功能,并解决了 Timer类存在的问题。
实现如下:
public?class?MyScheduledExecutorService?{????
public?static?void?main(String[]?args)?{????????
//?创建任务队列???10?为线程数量??????
ScheduledExecutorService?scheduledExecutorService?=?
Executors.newScheduledThreadPool(10);?
//?执行任务??????
?? scheduledExecutorService.scheduleAtFixedRate(()?->?{??????????