记
最近看了一下java定时调度Timer的源码,源码简单、清晰,结构清除,对于了解任务调度入门有帮助,因此在此对源码阅读总结一下。
综述
java 的Timer是一个定时任务调度控制器, 在java 并行库中的ScheduledExecutorService面世前,java中主要通过Timer应用实现定时时任务调度, 在Timer的定时任务调度框架中主要由Timer, Taskqueue, TimerThread, TimerTask组成,Timer是调度器对外的接口,提供对外的任务添加以及调度中心管理接口,TaskQueue是任务下次执行时间的优先级队列,该优先级队列是小顶堆结构实现的。TimerThread是任务执行的主体 ,每次从任务队列中取出下一个需要执行的任务,在该任务下次执行时间到来时开始执行,TimerTask是一个定时调度任务的抽象类,通过state对任务状态管理。
类关系图
如下图所示,为Timer中各个模块的类图