ScheduledExecutorService 和timer的区别和相同
时间: 2023-11-15 09:02:57 浏览: 158
JavaTimer和TimerTask实例教程Java开发
Java中的ScheduledExecutorService和Timer都可以用于定时任务的调度,但是它们之间有一些区别和相同点。
相同点:
1. 都可以用于定时任务的调度。
2. 都可以设置任务的延迟时间和执行周期。
区别:
1. 线程安全性:ScheduledExecutorService是线程安全的,而Timer不是线程安全的。
2. 精度:ScheduledExecutorService的精度更高,因为它使用了System.nanoTime()来计算时间,而Timer使用了System.currentTimeMillis()。
3. 可控性:ScheduledExecutorService可以控制任务的取消、延迟和周期,而Timer只能控制任务的取消和延迟。
4. 异常处理:ScheduledExecutorService可以处理任务执行过程中的异常,而Timer不能。
综上所述,如果需要更高的精度、更好的线程安全性和更好的可控性,建议使用ScheduledExecutorService。
阅读全文