使用Timer的缺陷

Java.util.Timer定时器实际上是一个单线程,实际调度所拥有的TimerTask任务。

6709ae5b320ca432dcb93e2bbacbf315bf1.jpg

1.时间的不准确性

如果存在多个任务,其中某个任务因为某种原因导致任务的执行时间特别长,超过了两个任务的间隔时间,就会出现延迟

3a8b6af517afb42eb9fcf3b90296a97cca3.jpg

输出:

da17c75e845f8c0be6d6f3bcd001dcd91d3.jpg

2.异常终止

在执行TimerTask抛出了未补货的异常,则会导致Timer线程终止,还会终止其他任务。

d12cad429801506a7103cf39b7994bfb161.jpg

输出:

1811d3b2a3833d75f87f1ac336f7e00e618.jpg

3.执行周期依赖系统时间

 所以如果系统时间出现了变化,那么就会出现一些执行上的变化。

使用alibaba开发手册会提示下面的提示:

751b77682afef916ec1ded79fcee3efad67.jpg

Timer的这些问题其实可以通过ScheduledExcutor来解决,所以下次我们看看这个类怎么可以做的更好!

后会有期!

转载于:https://my.oschina.net/u/2277632/blog/3031098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值