码迷,mamicode.com
首页 > 其他好文 > 详细

【JUC源码解析】ScheduledThreadPoolExecutor

时间:2018-05-20 00:15:10      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:nbsp   task   分享   开始   固定   源码分析   频率   技术分享   情况   

简介

它是一个线程池执行器(ThreadPoolExecutor),在给定的延迟(delay)后执行。在多线程或者对灵活性有要求的环境下,要优于java.util.Timer。

提交的任务在执行之前支持取消,默认情况下,在延迟到来之前,不会自动从队列中删除,但可以设置,使其立刻从队列中移除。

有两种模式,固定频率(scheduleAtFixedRate)和固定延迟(scheduleWithFixedDelay),不管哪种模式,同一个任务不会被叠加执行,即便是不同的线程执行同一个任务。

继承ThreadPoolExecutor,维护一个固定大小的线程池和一个无界延迟队列(delay queue)。

ScheduledFutureTask,用来描述要执行的任务,DelayedWorkQueue,则是装在这些任务的delay queue.

固定频率

一个任务,从第一次开始执行的时间点开始,每隔一定的时间执行一次,如果执行的时间大于间隔时间,则要等这次执行结束,再执行下一次。

技术分享图片

如上图所示,蓝色表示任务执行,白色表示间隔时间。

固定延迟

一个任务,每一次执行结束之后,延迟一定的时间,执行下一次。

 技术分享图片

 如上图所示,蓝色表示任务执行,白色表示间隔时间。

 

源码分析

属性

ScheduledFutureTask

属性

构造方法

关键方法

构造方法

关键方法

DelayedWorkQueue

属性

构造方法

关键方法

 

 

 

行文至此结束。

 

尊重他人的劳动,转载请注明出处:http://www.cnblogs.com/aniao/p/aniao_stpe.html

【JUC源码解析】ScheduledThreadPoolExecutor

标签:nbsp   task   分享   开始   固定   源码分析   频率   技术分享   情况   

原文地址:https://www.cnblogs.com/aniao/p/aniao_stpe.html

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