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