标准库中的定时器
•
标准库中提供了⼀个 Timer 类. Timer 类的
核⼼⽅法为 schedule .
•
schedule
包含两个参数. 第⼀个参数指定即将要执⾏的任务代码, 第⼆个参数指定多⻓时间之后
执⾏ (单位为毫秒).
Timer timer
=
new
Timer
();
timer.schedule(
new
TimerTask
() {
@Override
public void
run
() {
System.out.println(
"hello"
);
}
},
3000
);
实现定时器
定时器的构成
•
⼀个带优先级队列(不要使⽤ PriorityBlockingQueue, 容易死锁!)
•
队列中的每个元素是⼀个 Task 对象.
•
Task 中带有⼀个时间属性, 队⾸元素就是即将要执⾏的任务
•
同时有⼀个 worker 线程⼀直扫描队⾸元素, 看队⾸元素是否需要执⾏