ScheduledThreadPoolExecutor线程池scheduleAtFixedRate和scheduleWithFixedDelay的区别

2021-06-18 20:03

阅读:599

标签:一个   fixed   tor   共同点   OLE   pool   没有   task   rate   

ScheduledFuture> result = executor.scheduleAtFixedRate(task,2, 5, TimeUnit.SECONDS);

在延迟2秒之后开始执行首个任务,之后每隔5秒执行一个任务,也就是固定间隔时间执行一次任务,而不是等到上个任务执行结束。

 

ScheduledFuture> result = executor.scheduleWithFixedDelay(task,2, 5, TimeUnit.SECONDS);

在延迟2秒后开始执行首个任务,总是等到每个任务执行完毕后再等待(间隔)5秒开始执行下个任务。

 

两个方法的共同点:

如果间隔时间没有单次任务的执行时间长,则一个任务执行结束,就立马开始下一个任务。虽然不能明显看出间隔时间,但是也不会使任务并发(交叉混合)执行,任务与任务之间一定是顺序执行。

如果中途有任何线程发生异常,则任务终止。

ScheduledThreadPoolExecutor线程池scheduleAtFixedRate和scheduleWithFixedDelay的区别

标签:一个   fixed   tor   共同点   OLE   pool   没有   task   rate   

原文地址:https://www.cnblogs.com/zhuwenjoyce/p/9706513.html


评论


亲,登录后才可以留言!