点击上方疾风先生可以订阅哦
线程池作用
使用背景
在并发大量异步任务处理程序中,每执行一个任务就需要创建一个线程,同时任务执行完毕之后需要将线程销毁.我们知道JVM创建线程的时候需要为其分配线程栈空间以及一些初始化操作...// 当该线程池中的线程被中断或者异常退出的时候,线程池会新创建一个线程继续执行后续的任务
public static ScheduledExecutorService newSingleThreadScheduledExecutor...ThreadPoolExecutor类下核心组件
1) 工作线程Worker:包装一个线程以及任务的工作线程,在没有任务的时候处于等待,可以循环任务,并且实现AQS接口,从类图中可以看出具备独占锁的功能...(c) < corePoolSize) {
// 创建新的线程执行任务,会通过加锁的方式保存工作线程,如果成功则执行任务
if (addWorker(command, true...set集合中
线程池状态
状态代码
// 存储线程池状态以及工作线程个数(RUNNING, 0)
// rs表示状态,wc表示工作线程个数
private final AtomicInteger ctl