schedule和scheduleAtFixedRate的区别-带例子

好久没写博客了,快成咸鱼了,今天就来试试手,主要还是被这个问题困扰久了,来记录一下

Timer的两种添加调度任务的方式:

贴一段api:

schedule

scheduleAtFixedRate

两种方式的区别:

一、如果第二个参数firstTime是在当前时间之前,那么scheduleAtFixedRate会追赶执行,就是把firstTime与当前时间之间,应该执行任务的次数执行完,schedule不会

栗子:

现象:无追赶执行

换成scheduleAtFixedRate

现象:追赶执行

二、如果任务执行时间大于任务执行间隔,也就是任务执行会延时的情况下,scheduleAtFixedRate的执行间隔是固定的,执行还是以上次任务执行的开始时间计算下一次任务的开始时间,schedule执行会以上一个任务执行的结束开始计算下一次任务的开始时间,但是如果时间小于当前时间,任务会立即执行;

附上网上一篇博客的解释,感觉是对的,至少执行现象是符合的:

现象:固定的间隔两秒执行

---------------

现象:执行时间以上一个任务执行结束时间计算

具体执行原理,没看源码。反正现象是知道了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值