码迷,mamicode.com
首页 > 编程语言 > 详细

ScheduledThreadPoolExecutor线程池scheduleAtFixedRate和scheduleWithFixedDelay的区别

时间:2018-09-26 14:24:10      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:一个   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!