概述
1、RUNNING
最正常的状态,接受新的任务,处理等待队列中的任务。
2、SHUTDOWN
不接受新的任务提交,但会继续处理等待队列中的任务。
3、STOP
不接受新的任务提交,不再处理等待队列中的任务,中断正在执行任务的线程。
4、TIDYING
所有任务都销毁了,workCount 为 0,线程池的状态在转换为 TIDYING 状态时,会执行钩子方法 terminated()。
5、TERMINATED
terminated()方法结束后,线程池的状态就会变成这个。
线程池各状态转换:
RUNING -> SHUTDOWN:当调用线程池的 shutdown 方法时状态变为SHUTDOW。
RUNNING ->STOP:当调用线程池的 shutdownNow 方法时状态变为STOP。
SHUTDOWN -> TIDYING:当线程池的 shutdown 方法调用时,会再调用 tryTerminated 方法,将状态改为 TIDYING 状态。
STOP -> TIDYING:当线程池的 shutdownNow 方法调用时,会再调用 tryTerminated 方法,将状态改为 TIDYING 状态。
TIDYING->TERMINATED:当 tryTerminated 调用时,执行完 terminated 方法后,会将线程池的状态改为 TERMINATED 状态。
参考:
线程池状态转换 - 简书
Java并发编程(7)- 线程调度 - 线程池-布布扣-bubuko.com
最后
以上就是留胡子海燕为你收集整理的线程池的五种状态的全部内容,希望文章能够帮你解决线程池的五种状态所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复