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次。也就是说当执行任务超点或者早点的时候,前者能够灵活调用任务使得在规定计算出的时间内达到规定的调用次数,而后者只能按照超点或早点的时间计算,这样后者就可能会少调用或多调用任务次数。

  • 相关阅读:
    javascript异步编程学习及实例
    通过调试vue-cli 构建代码学习vue项目构建运行过程
    web技术栈开发原生应用-多端共用一套代码
    vuejs应用开发前后端分离
    web前端跨域解决方案JSONP,CORS,NGINX反向代理
    js script 加载顺序
    js 百度地图
    layui-table 样式
    css 排版 test
    layui table
  • 原文地址:https://www.cnblogs.com/zzb-yp/p/9259746.html
Copyright © 2011-2022 走看看