: 因为创建线程需要比较大的开销,并且线程数太多的情况下上下文切换比较频繁,所以我们希望有一种机制来改善它,这就是线程池,改善的核心就是控制线程的数量,通过暴露接口,可以满足用户创建不同场景下的线程池...,提交一个任务时,如果线程池中的线程数没有达到核心线程数,则会创建一个新的线程
maximumPoolSize: 最大线程池,工作队列满了的情况下,如果线程池中的线程数没有达到最大线程数,则会创建一个新线程...#addWorkerFailed
执行到这里,说明线程池可能已经出现了问题,这时候需要回滚之气那的操作.即恢复workerCount的值,然后将该Worker从workers中移除,并尝试停止线程池
private...在创建线程池的时候,有提到一个参数:空闲时间,这个空闲时间是什么意思呢?...(即take),反之亦然
优缺点
适合执行时间比较短的任务,这种情况下,很多线程可以被复用,避免每次都创建大量线程的开销
但在任务执行时间比较长的情况,由于该线程池对线程数没有限制,可能会创建非常多的线程