线程池--by--闫明
2019-02-19 16:31:13 0 举报
线程池类图图示
作者其他创作
大纲/内容
否
线程池执行原理图示
队列已经满
饱和策略
继承
包含
class ThreadPoolExecutor线程池的核心实现类
interface Executor 顶级接口
void execute(Runnable command);只定义了顶级接口
把当前线程添加到阻塞队列
execute
DiscardOldestPolicy
abstract class AbstractExecutorService抽象类添加公共是实现
ScheduledExecutorService
继承父类
判断线程池的最大线程数是否已经满
ScheduledThreadPoolExecutor
DiscardPolicy
是
实现接口
创建线程并执行
添加成功,等待被处理
线程池类关系图
判断核心线程数是否满 (workerCountOf)
AbortPolicy默认拒绝策略
创建核心线程
实现
内部类Worker核心工作者线程,用于初始化任务或者领取任务并消费任务class Worker extends AbstractQueuedSynchronizer implements Runnable本质上还是同步器
private static final long serialVersionUID = 6138294804551838833L; final Thread thread;对应任务线程 Runnable firstTask;初始任务后者接收到的任务 volatile long completedTasks;完成任务数量 构造方法 Worker(Runnable firstTask) { setState(-1); // inhibit interrupts until runWorker this.firstTask = firstTask;初始化任务 this.thread = getThreadFactory().newThread(this); } 工作者线程完成任务的核心方法,工作者本身就是一个线程 public void run() { runWorker(this);调用核心类ThreadPoolExecutor的runWorker方法完成任务获取和消费 }
interface ExecutorService扩展接口
0 条评论
下一页