Timer定时器的使用
主要使用对象有 Timer 和 TimerTask,
Timer
- schedule(…)
- scheduleAtFixedRate(…)
- cancel()
schedule() 相比 scheduleAtFixedRate(), 它不具备 追赶特性 1
cancel() 方法,将会停止执行计划,将 任务队列 2 中全部的任务进行清空。
TimerTask
该类实现了Runnable接口,通过实现 run() 方法来描述需要执行的任务内容。
- cancel()
将自身从任务队列中清除
定时任务实现过程浅析
首先通过使用,我们知道 Timer对象通过参数来设置了执行规则,按一定的时间去执行我们的TimerTask线程任务。比如延期执行(delay),在指定时间点执行, 按一个时间轮训执行(period)
我们的TimerTask是一个Runnable,Timer在创建时自定创建了一个线程(TimerThread)去轮训了我们的任务队列,不断的去判断我们的计划任务时间是否符合条件。(详见 java.util.TimerThread#mainLoop 方法实现)