java Timer定时任务调度原理

最近看了一下java定时调度Timer的源码,源码简单、清晰,结构清除,对于了解任务调度入门有帮助,因此在此对源码阅读总结一下。

综述

java 的Timer是一个定时任务调度控制器, 在java 并行库中的ScheduledExecutorService面世前,java中主要通过Timer应用实现定时时任务调度, 在Timer的定时任务调度框架中主要由Timer, Taskqueue, TimerThread, TimerTask组成,Timer是调度器对外的接口,提供对外的任务添加以及调度中心管理接口,TaskQueue是任务下次执行时间的优先级队列,该优先级队列是小顶堆结构实现的。TimerThread是任务执行的主体 ,每次从任务队列中取出下一个需要执行的任务,在该任务下次执行时间到来时开始执行,TimerTask是一个定时调度任务的抽象类,通过state对任务状态管理。

类关系图

如下图所示,为Timer中各个模块的类图
Alt Timer 主要模块类图

总体时序图

Timer TimerThread TaskQueue 任务执行线程开始作业 获取下一个需要执行的任务 返回任务 loop
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值