ThreadPoolExecutor源码分析
2021-05-02 21:57:29 14 举报
ThreadPoolExecutor源码分析
作者其他创作
大纲/内容
AbstractQueuedSynchronizer
Worker
线程池的4个拒绝策略1、AbortPolicy:直接抛出异常,默认策略;2、CallerRunsPolicy:由调用者所在的线程来执行任务;3、DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,将当前任务加入队列;4、DiscardPolicy:直接丢弃任务;实现RejectedExecutionHandler接口,可以自定义饱和策略
compareAndIncrementWorkerCount(c)
workerCountOf(c) < corePoolSize当前线程池中存在的核心线程数 < 线程池的核心线程数corePoolSize
类ThreadPoolExecutor
workers.add(w);
T
isRunning(c) && workQueue.offer(command)
mainLock.lock();
F
mainLock.unlock();
reject(command);
new Worker(firstTask);
execute(ftask);
Runable
0 条评论
下一页