博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
util包下Timer类的延迟执行
阅读量:4984 次
发布时间:2019-06-12

本文共 759 字,大约阅读时间需要 2 分钟。

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

 

转载于:https://www.cnblogs.com/zzb-yp/p/9259746.html

你可能感兴趣的文章
一次谷歌面试趣事
查看>>
(5) Orchard 开发之 Localization and NullLocalizer
查看>>
分类算法(1)--KNN
查看>>
每日记载内容总结3
查看>>
ajax等待请求
查看>>
NTP协议详解
查看>>
Java学习之equals和hashcode的关系
查看>>
一页纸商业计划书 (Business Plan) 模板(转载)
查看>>
什么是html
查看>>
妙用python之编码转换
查看>>
hdu 4451 Dressing 衣服裤子鞋 简单容斥
查看>>
TTTTTTTTTTTT Gym 100818B Tree of Almost Clean Money 树连剖分+BIT 模板题
查看>>
linux一些基本常识(四)
查看>>
Docker架构
查看>>
C#设计模式(3)——工厂方法模式
查看>>
过目不忘JS正则表达式
查看>>
hdu4009最小树形图
查看>>
bzoj1009: [HNOI2008]GT考试 ac自动机+矩阵快速幂
查看>>
UVA 784 Maze Exploration
查看>>
网站字体的导入代码
查看>>