zoukankan      html  css  js  c++  java
  • java 定时器

    Timer定时器是单线程执行

    定时器实现的流程:

    (1)第一步:创建一个Timer。

    (2)第二步:创建一个TimerTask。

    (3)第三步:使用Timer执行TimerTask。

    执行:

    (1)schedule(task,time) 在时间等于或超过time的时候执行且只执行一次task,这个time表示的是例如2019年11月11日上午11点11分11秒。指的是时刻。

    (2)schedule(task,time,period)

    在时间等于或超过time的时候首次执行task,之后每隔period毫秒重复执行一次task 。这个time和上一个一样。

    (3)schedule(task, delay)

    在delay时间之后,执行且只执行一次task。这个delay表示的是延迟时间,比如说三秒后执行。

    (4)schedule(task,delay,period)

    在delay时间之后,开始首次执行task,之后每隔period毫秒重复执行一次task ,这个delay和上面的一样。

    (5)scheduleAtFixedRate(task, time, period)

    在时间等于或超过time的时候首次执行task,之后每隔period毫秒重复执行一次task 。这个time表示的是例如2019年11月11日上午11点11分11秒。指的是时刻。

    (6)scheduleAtFixedRate(task, delay, period)

    在delay时间之后,开始首次执行task,之后每隔period毫秒重复执行一次task ,这个delay表示的是延迟时间,比如说三秒后执行。

    schedule和scheduleAtFixedRate的区别:

    schedule:如果第一次执行时间被delay了,随后的执行时间按照上一次实际执行完的时间点进行计算 。scheduleAtFixedRate:如果第一次执行时间被delay了,随后的执行时间按上一次开始的时间进行计算,并且为了赶上进度会多次执行任务。

    Timer存在的缺陷:

    Timer是单线程执行,当有一个任务出现error的时候,所有的都停止执行。

    推荐使用ScheduledExecutorService框架的定时器。

    2. 采用@Scheduled(cron = "")注解来设置定时器

  • 相关阅读:
    动态控件、控件的生存周期和ViewState的运行细节
    PDA开发初级经验
    编译原理知识总结
    A System for Collecting and Analyzing TopicSpecific Web Information
    show tooltip on control
    慧科新闻、慧科搜索
    内存泄漏
    www.sinobankers.com/forum“今日新帖”“最新会员”“论坛热贴”消失问题
    一堆信息抽取的资料文档
    showing tooltip on controls (description on TTN_NEEDTEXT)
  • 原文地址:https://www.cnblogs.com/pass-ion/p/13452601.html
Copyright © 2011-2022 走看看