zoukankan      html  css  js  c++  java
  • 工具类篇——util包下Timer类的延迟执行

    Timer类是用来做定时器的关键类,其实质是在线程中定时调用任务方法的实现。

    timer.schedule(TimerTask,int,int)实现的是循环调用任务方法,在TimerTask中就是一个线程的run()方法,需要自己重写,第二个参数是从多少毫秒开始执行run(),第三个参数是执行完run()后多少毫秒再次执行。

    timer.schedule(TimerTask,int)实现的是单次定时调用任务方法,在TimerTask中就是一个线程的run()方法,需要自己重写,第二个参数是从多少毫秒后开始执行run()。

    timer.scheduleAtFixedRate(TimerTask,int,int)实现的是循环调用任务方法,在TimerTask中就是一个线程的run()方法,需要自己重写,第二个参数是从多少毫秒开始执行run(),第三个参数是执行完run()后多少毫秒再次执行。与上面timer.schedule(TimerTask,int,int)功能上相似,实质上前者的执行时间是当前应该通过的时间,而后者的执行时间是当前实际通过的时间。例如:规定每隔5秒调用一次任务,当调用到5次的时候,分别在5,10,15,20,25秒的时候调用任务,但是由于某种原因在5秒的时候程序没有调用而在7秒的时候调用,这样算来下一次的调用时间是12秒,不是原来的第10秒,当第25秒的时候才只调用了4次任务方法,而理论上应该调用5次。也就是说当执行任务超点或者早点的时候,前者能够灵活调用任务使得在规定计算出的时间内达到规定的调用次数,而后者只能按照超点或早点的时间计算,这样后者就可能会少调用或多调用任务次数。

  • 相关阅读:
    如何在域和域之间建立信任域?关键是配置域和域之间的DNS服务器
    Client Recevier 命令安装 AllUsers=1
    在XD 4.0 设置Policy
    更改linux系统中键盘设置
    如何在DNS中添加另一DNS
    CMD命令
    KMS激活OS(系统)
    谁抢了我的IP!!!~
    关于域证书的发布CA和CRL的内容 (Windows 2008 Server R2 SP1)
    XenServer假死状态
  • 原文地址:https://www.cnblogs.com/zzb-yp/p/9259746.html
Copyright © 2011-2022 走看看