我是靠谱客的博主 留胡子海燕,最近开发中收集的这篇文章主要介绍线程池的五种状态,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

最后

以上就是留胡子海燕为你收集整理的线程池的五种状态的全部内容,希望文章能够帮你解决线程池的五种状态所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部