线程池之调度池newScheduledThreadPool

new一个线程数为4的线程池:
ScheduledExecutorService service = Executors.newScheduledThreadPool(4);
官方API提供四个方法如图:


QQ图片20170926152137.png

即兴翻译:

1.schedule(Callable<V> callable, long delay, TimeUnit unit)
创建并执行并销毁一个callable在延迟指定delay时间后
2.同1,callable换成了runnable
3.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
创建并执行并结束一个runnable在延迟指定initialDelay时间,然后,每隔initialDelay+period*n时间执行一次
4.scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
创建并执行并结束一个runnable在延迟指定initialDelay时间,然后第一次执行完成后,间隔delay时间继续执行一次,无限循环。

测试代码:

QQ图片20170926153212.png

难点:
1.scheduleAtFixedRate如果执行时间小于指定的间隔时间的情况下,callable或runnable每隔period执行一次,如果执行时间大于指定的间隔时间,每隔程序执行时间执行一次。
2.scheduleWithFixedDelay,不管执行时间怎么样,两次执行时间之间必须间隔delay时间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容