Timer的底层实现原理?
Timer
是 Java 中用于定时任务调度的基础工具类,其底层实现基于 单线程+任务队列 的模型。以下是 Timer
的底层实现原理的详细分析:
一、核心组件
-
TimerThread
- 继承自
Thread
,是Timer
的工作线程,负责从队列中提取任务并执行。 - 通过
while (true)
循环持续检查任务队列。
- 继承自
-
TaskQueue
- 一个基于 最小堆(优先级队列) 的任务队列,按任务的触发时间(
nextExecutionTime
)排序。 - 堆顶元素永远是最近要执行的任务。
- 一个基于 最小堆(优先级队列) 的任务队列,按任务的触发时间(
-
TimerTask
- 抽象类,用户任务需继承它并实现
run()
方法。 - 包含任务状态(
cancelled
、schedu
- 抽象类,用户任务需继承它并实现