Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代

1、Timer管理延时任务的缺陷

a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,超过了两个任务的间隔时间,会发生一些缺陷。

2、Timer当任务抛出异常时的缺陷

如果TimerTask抛出RuntimeException,Timer会停止所有任务的运行。

3、Timer执行周期任务时依赖系统时间

Timer执行周期任务时依赖系统时间,如果当前系统时间发生变化会出现一些执行上的变化,ScheduledExecutorService基于时间的延迟,不会由于系统时间的改变发生执行变化。

上述,基本说明了在以后的开发中尽可能使用ScheduledExecutorService(JDK1.5以后)替代Timer。


详情见:http://blog.csdn.net/lmj623565791/article/details/27109467


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Timer 定时器相信都不会陌生,之所以拿它来做源码分析,是发现整个控制流程可以体现很多有意思的东西。 在业务开发...
    石先阅读 11,500评论 2 13
  • 在需要按时间计划执行简单任务的情况下,Timer是最常被使用到的工具类。使用Timer来调度TimerTask的实...
    海纳百川_spark阅读 12,307评论 0 13
  • Timer Demo 我们定义了两个定时任务,每个定时任务的执行周期是1秒钟,每秒执行一次。task1 执行的时长...
    jijs阅读 5,784评论 4 9
  • 一直认为文明是文化散发的光辉。文明的传承既依赖文化巨人的各领风骚,又需要文学之士的推波助澜。对一个写作者,出生地首...
    八里山人程远河阅读 4,012评论 17 16
  • “来来来,吃腰吃腰“,这个韭黄又名升阳草。。。。”我笑容可鞠地对着一干新客人安利崔家菜的“资格”凉菜“风味腰花”。...
    鹃姐阅读 3,821评论 0 0

友情链接更多精彩内容