-
创建一个Timer 就是启动了一个线程,这个线程显然不是守护线程,所以一直运行。停不下来
timer.schedule(task, runDate); 在什么时候,做什么事儿。
在实例化Timer的时候,把它设置为守护线程。 Timer timer = new Timer(true); -
计划时间早于当前时间—就立即执行。
一个Timer中可以有多个TimeTask, 也许会出现延时,因为前面的task可能执行时间太长。 -
timer.schedule(task, runDate, 4000); // 指定时间间隔,无限循环下去
-
TimerTask中的cancel()方法,是将自身从任务队列中被移出去,其他任务不受影响。
Timer中的cancel()方法,是将任务队列中全部的任务进行清空,但有时不一定会停止
计划任务,而是正常执行。 原因是Timer中的cancel()方法有时候并没有争抢到queue锁,
则让TimerTask类中的任务正常执行。
第五章:定时器 Timer
最新推荐文章于 2022-03-26 17:45:26 发布