ScheduledThreadPoolExecutor流程图
2024-04-05 16:55:07 32 举报
ScheduledThreadPoolExecutor流程图
作者其他创作
大纲/内容
ScheduledFutureTask#cancel
ScheduledThreadPoolExecutor#schedule
decorateTask可以通过子类修改任务,空实现
否
ScheduledThreadPoolExecutor.ScheduledFutureTask#setNextRunTime设置当前任务下一个执行时间
当前任务是否为周期任务
delayedExecute添加任务
ScheduledThreadPoolExecutor#reExecutePeriodic重新放入任务队列中
canRunInCurrentRunState判断当前任务是否该执行
简单来说就是shutdownNow 后不能执行,shutdown后根据参数判断是否该执行
ensurePrestart保证有工作线程
直接调用 run
ThreadPoolExecutor#ensurePrestart如果线程池工作线程小于核心线程则添加一个工作线程,当核心线程为 0 是也添加一个工作线程
线程池是否停止
DelayedWorkQueue一个优先级的阻塞队列
ThreadPoolExecutor#runWorker父类线程池
java.util.concurrent.FutureTask#cancel取消任务
java.util.concurrent.ThreadPoolExecutor#remove从延时队列中删除
不应该执行
就是保证有工作线程能执行任务
ScheduledThreadPoolExecutor.DelayedWorkQueue#offer添加到延时队列中
是
ThreadPoolExecutor#reject执行拒绝策略
ScheduledFutureTask把任务包装
execute,submit
ScheduledThreadPoolExecutor.ScheduledFutureTask#run定时调度核心
0 条评论
下一页