Java定时器之Timer原理解析

Java在1.3版本引入了Timer工具类,它是一个古老的定时器,搭配TimerTask和TaskQueue一起使用。从Java5开始在并发包中引入了另一个定时器ScheduledThreadPoolExecutor,它对Timer做了很多改进并提供了更多的工具,可以认为是对Timer的取代。

那为什么还要介绍Timer工具类呢?通过了解Timer的功能和它背后的原理,有助于我们更好的对比了解ScheduledThreadPoolExecutor,同时ScheduledThreadPoolExecutor的一些改进思想在我们平时的编码工作中也可以借鉴。

主要成员变量

Timer中用到的主要是两个成员变量:

  1. TaskQueue:一个按照时间优先排序的队列,这里的时间是每个定时任务下一次执行的毫秒数(相对于1970年1月1日而言)
  2. TimerThread:对TaskQueue里面的定时任务进行编排和触发执行,它是一个内部无限循环的线程。

//根据时间进行优先排序的队列
private final TaskQueue queue = new TaskQueue();

//消费线程,对queue中的定时任务进行编排和执行
private final TimerThread thread = new TimerThread(queue);

//构造函数
public Timer(String name) {
thread.setName(name);
thread.start();
}

<< · Back Index ·>>

发表回复

相关推荐

干吃面大合集

1.统一小当家干脆面48包混合口味 2.老北京方便面(36袋x65克) 3.幸运 方便面 红烧排骨面 干吃面 60g*30袋 整箱装节日 4.统一 ...

· 3分钟前

備孕科普/科學備孕之(男性篇)

接著上一期講完女性篇:科學備孕,這些你做到瞭嗎? 今天我們繼續著重對男性朋友們說如何科學備孕瞭!(一)自我認知每個男性...

· 4分钟前

夏金桂與薛蟠的結局,窮的頭油都打不起,二十八回已有暗示

《紅樓夢》八十回結束前最讓人討厭的兩個人,一個是孫紹祖,一個是夏金桂。孫紹祖暗線出場惡貫滿盈,夏金桂明線出場,所作所...

· 5分钟前

大拍档剪辑助手,按字幕分割短视频素材

我们批量剪辑短视频会有素材片段的分割,大拍档剪辑助手就比较适合,可以按字幕分割短视频素材。

· 12分钟前

5款胶原蛋白酸奶深度测评:爱美的你掉进陷阱了吗?

文 | 乳品之家液奶测评研究中心 近几年,胶原蛋白、玻尿酸行业发展迅速,就在去年年初,胶原蛋白允许被添加到食品中,于是市 ...

· 16分钟前