22. 定时器用什么做的

Timer类的实现原理

请参考博文:https://blog.csdn.net/jijianshuai/article/details/78409381

Timer的两大缺陷:

1. Timer底层是使用一个单线来实现多个Timer任务处理的,所有任务都是由同一个线程来调度,所有任务都是串行执行,意味着同一时间只能有一个任务得到执行,而前一个任务的延迟或者异常会影响到之后的任务。

2. Timer中所有的任务都是在一个线程中执行,那么如果有一个定时任务在运行时,产生未处理的异常,那么当前这个线程就会停止,那么所有的定时任务都会停止,受到影响。

更好的定时任务实现:

JDK1.5后,ScheduledExecutorService

详细实现类是:ScheduledThreadPoolExecutor

原文地址:https://www.cnblogs.com/GrimMjxCl/p/9425232.html