22. 定时器用什么做的

Timer类的实现原理

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

 

Timer的两大缺陷:

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

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

 

更好的定时任务实现:

JDK1.5后,ScheduledExecutorService

详细实现类是:ScheduledThreadPoolExecutor

 

posted @ 2018-08-05 13:08  冷漠不是我的本意  阅读(1055)  评论(0编辑  收藏  举报