- 博客(3)
- 收藏
- 关注
原创 线程池中多余的线程是如何回收的?
ThreadPoolExecutor回收工作线程,一条线程getTask()返回null,就会被回收。分两种场景。未调用shutdown() ,RUNNING状态下全部任务执行完成的场景线程数量大于corePoolSize,线程超时阻塞,超时唤醒后CAS减少工作线程数,如果CAS成功,返回null,线程回收。否则进入下一次循环。当工作者线程数量小于等于corePoolSize,就可以一直阻塞了。调用shutdown() ,全部任务执行完成的场景。
2023-05-10 09:43:38 507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人