1.当设置pool.allowCoreThreadTimeOut(true),无论执行任务所需线程数有没有超过corePoolSize,到达keepAliveTime都会回收。
2.当不设置pool.allowCoreThreadTimeOut(true)的时候,只有触发maximumPoolSize 到达keepAliveTime才会回收。不然会一直等待。什么意思?意思就是比如corePoolSize=5 队列大小4 maximumPoolSize=20我有12个任务,当12个任务进来 先建立5个线程去执行,然后请求队列放置任务4个,还剩3个 只能去触发maximumPoolSize,再建3个线程,然后所有任务完成,线程空闲keepAliveTime时间,那么所有线程会被回收。
截图如下:1-----不设置pool.allowCoreThreadTimeOut(true) 触发maximumPoolSize 回收


2.不设置pool.allowCoreThreadTimeOut(true) 不触发maximumPoolSize 一直等待


3.------设置pool.allowCoreThreadTimeOut(true) 触发maximumPoolSize 回收


4.------设置pool.allowCoreThreadTimeOut(true) 不触发maximumPoolSize 回收

