自己动手实现线程池 jdk线程池ThreadPoolExecutor工作原理解析(一)( 十 )

newCachedThreadPoolnewCachedThreadPool方法创建一个工作线程数量有巨大弹性的线程池,其核心线程数corePoolSize=0而最大线程数maximumPoolSize为Integer.MAX_VALUE , 60s的保活时间 。同时其工作队列是SynchronousQueue,是一种队列容量为0、无法缓存任何任务的阻塞队列(任何时候插入数据(offer)时必须有消费者线程消费 , 否则生产者线程将会被阻塞) 。这也意味着“cachedThreadPool”中没有核心线程,所有工作线程在任务负载较低时都会在60s的idle后被销毁;同时当负载较高,新任务到来时由于所有的工作线程都在执行其它任务,将会立即创建一个新的非核心线程来处理任务 。适用场景:由于可以无限制的创建新线程来做到及时响应任务,“cached【自己动手实现线程池 jdk线程池ThreadPoolExecutor工作原理解析(一)】

推荐阅读