标准库中的定时器
•
标准库中提供了⼀个 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 线程⼀直扫描队⾸元素, 看队⾸元素是否需要执⾏