定时器 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