定时器 Timer

作者: TinyDolphin | 来源:发表于2018-02-06 18:49 被阅读0次

定时器 Timer

[toc]

定时器 Timer 的使用

Timer 类主要负责计划任务的功能,也就是在指定时间开始执行某一个任务

主要作用:设置计划任务,但封装任务的类却是 TimerTask 类。

常用方法

schedule()

  • schedule(TimerTask task,Date time)在指定的日期执行一次某一任务
  • schedule(TimerTask task,Date firstTime,long period):在指定的日期之后按指定的间隔周期,无限循环地执行某一任务
  • schedule(TimerTask task,long delay)
    :以执行该方法当前的时间为基础时间,延迟指定毫秒数后执行一次任务
  • schedule(TimerTask task,long delay,long period):以执行该方法当前的时间为基础时间,延迟指定毫秒数后执行一次任务,再以某一时间间隔无限次地执行某一任务。

Timer 中允许有多个 TimerTask 任务:以队列的方式一个个被顺序性的执行。

TimerTask.cancel() & Timer.cancel 的区别:

  • TimerTask 的 cancel():将自身从任务队列中进行清除
  • Timer 的 cancel():将任务队列中全部的任务进行清空(有时不一定会停止任务)

scheduleAtFixedRate()

与 schedule() 方法基本一致,主要区别:追赶性。

  • 不延时的情况下,两者一致。
  • 如果出现延时,则 scheduleAtFixedRate() 会以上一次任务结束的时间来作为参考计算,而 schedule()立即执行

注意

推荐使用 ScheduledExecutorService

多线程并行处理定时任务时,Timer 运行多个 TimeTask 时,只要其中之一没有捕获抛出的异常其它任务便会自动终止运行,使用 ScheduledExecutorService 则没有这个问题。

相关文章

网友评论

    本文标题:定时器 Timer

    本文链接:https://www.haomeiwen.com/subject/gdfnzxtx.html