ScheduledExecutorService与Timer的方法比较

xiaoxiao2021-02-28  73

ScheduledExecutorService与Timer都有scheduleAtFixedRate方法

一、相同名称的方法

scheduleAtFixedRate

ScheduledExecutorService 的 scheduleAtFixedRate(Runnable command,long initialDelay,long period1,TimeUnit unit) 与Timer 的 scheduleAtFixedRate(TimerTask task, long delay, long period2) 功能是一样的:

initialDelay/delay后第一次执行command/task

然后在第一次开始执行command/task的时间点开始算,period1/period2后第二次执行command/task

然后在第二次开始执行command/task的时间点开始算,period1/period2后第三次执行command/task

然后在第三次开始执行command/task的时间点开始算,period1/period2后第四次执行command/task

...

...

...

如果delay/period后的时间点上一次的command/task还没有执行完,那么会等到上一次的执行完,才会开始下一次的执行。

二、ScheduledExecutorService的方法

scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit)功能为:

initialDelay后第一次执行command

然后在第一次结束执行command的时间点开始算delay后第二次执行command;

然后在第二次结束执行command的时间点开始算,delay后第三次执行command;

然后在第三次结束执行command的时间点开始算,delay后第四次执行command;

...

...

...
转载请注明原文地址: https://www.6miu.com/read-74210.html

最新回复(0)