Java.util.Timer定时器实际上是一个单线程,实际调度所拥有的TimerTask任务。
1.时间的不准确性
如果存在多个任务,其中某个任务因为某种原因导致任务的执行时间特别长,超过了两个任务的间隔时间,就会出现延迟
输出:
2.异常终止
在执行TimerTask抛出了未补货的异常,则会导致Timer线程终止,还会终止其他任务。
输出:
3.执行周期依赖系统时间
所以如果系统时间出现了变化,那么就会出现一些执行上的变化。
使用alibaba开发手册会提示下面的提示:
Timer的这些问题其实可以通过ScheduledExcutor来解决,所以下次我们看看这个类怎么可以做的更好!
后会有期!