java
文章平均质量分 81
@日月草
这个作者很懒,什么都没留下…
展开
-
Java定时任务Timer调度器【一】 源码分析(图文详解版)
就以闹钟的例子开头吧(后续小节皆以闹钟为例,所有源代码只列关键部分)。 public class ScheduleDemo { public static void main(String[] args) throws InterruptedException { long delay = 1000; // 一秒后开始执行 long period =...原创 2018-11-23 11:06:16 · 258 阅读 · 0 评论 -
Java定时任务Timer调度器【二】 多线程源码分析(图文版)
上一节通过一个小例子分析了Timer运行过程,牵涉的执行线程虽然只有两个,但实际场景会比上面复杂一些。 首先通过一张简单类图(只列出简单的依赖关系)看一下Timer暴露的用户接口。 为了演示Timer所暴露的接口,下面举一个极端的例子(每一个接口方法面向单独的执行线程),照样以闹钟为例(源码只列出关键部分,下同)。 public class ScheduleDemo { ...原创 2018-11-26 10:39:35 · 226 阅读 · 0 评论 -
Java定时任务Timer调度器【三】 注意事项(任务精确性与内存泄漏)
一、任务精确性 通过前两节的分析,大概知道了Timer的运行原理,下面说说使用Timer需要注意的一些事项。下面是Timer简单原理图 从上图可以看到,真正运行闹钟的是一个单线程。也就是说队列中的闹钟,只能依次进行串行化的操作,闹钟的定时执行得不到保证。 比如下面的例子(本节所有代码只列出关键部分,下同)。 public class ScheduleDemo { pu...原创 2018-11-26 17:14:27 · 1367 阅读 · 0 评论