: 因为创建线程需要比较大的开销,并且线程数太多的情况下上下文切换比较频繁,所以我们希望有一种机制来改善它,这就是线程池,改善的核心就是控制线程的数量,通过暴露接口,可以满足用户创建不同场景下的线程池...,提交一个任务时,如果线程池中的线程数没有达到核心线程数,则会创建一个新的线程
maximumPoolSize: 最大线程池,工作队列满了的情况下,如果线程池中的线程数没有达到最大线程数,则会创建一个新线程...workerCount减1
尝试停止线程池
执行任务
通过上面的代码可以发现,提交任务的时候,如果创建了一个新的Worker实例,就相当于创建了一个新的线程,并且会启动该线程....中断处理,即那个判断条件,也就是Worker实现AQS的目的
空闲线程清理
在创建线程池的时候,有提到一个参数:空闲时间,这个空闲时间是什么意思呢?...(即take),反之亦然
优缺点
适合执行时间比较短的任务,这种情况下,很多线程可以被复用,避免每次都创建大量线程的开销
但在任务执行时间比较长的情况,由于该线程池对线程数没有限制,可能会创建非常多的线程