你好,先说一下他主要适用的场景:
1. 耗时较短的任务。
2. 任务处理速度 > 任务提交速度 ,这样才能保证不会不断创建新的进程,避免内存被占满。
取名为cached threadpool,原因在于线程池中的线程是被线程池缓存了的,也就是说,线程没有任务要执行时,便处于空闲状态,处于空闲状态的线程并不会被立即销毁(会被缓存住),只有当空闲时间超出一段时间(默认为60s)后,线程池才会销毁该线程(相当于清除过时的缓存)。新任务到达后,线程池首先会让被缓存住的线程(空闲状态)去执行任务,如果没有可用线程(无空闲线程),便会创建新的线程
corePoolSize为0,maximumPoolSize为无限大,意味着线程数量可以无限大,keepAliveTime为60S意味着线程空闲时间超过60S就会被杀死。只要有请求到来,就必须要找到一条工作线程处理他,如果当前没有空闲的线程,那么就会创建一条新的线程。