线程池包含哪些状态?

线程池状态:

线程池的5种状态:RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATED。

见 ThreadPoolExecutor 源码

// runState is stored in the high-order bitsprivate static final int RUNNING= -1 <<COUNT_BITS;private static final int SHUTDOWN =0 <<COUNT_BITS;private static final int STOP =1 <<COUNT_BITS;private static final int TIDYING=2 <<COUNT_BITS;private static final int TERMINATED =3 <<COUNT_BITS;

1. RUNNING:线程池一旦被创建,就处于RUNNING 状态,任务数为 0,能够接收新任务,对已排队的任务进行处理。

2. SHUTDOWN:不接收新任务,但能处理已排队的任务。调用线程池的 shutdown() 方法,线程池由 RUNNING 转变为 SHUTDOWN 状态。

3. STOP:不接收新任务,不处理已排队的任务,并且会中断正在处理的任务。调用线程池的 shutdownNow() 方法,线程池由(RUNNING 或 SHUTDOWN ) 转变为 STOP 状态。

4. TIDYING:

  • SHUTDOWN 状态下,任务数为 0, 其他所有任务已终止,线程池会变为 TIDYING 状态,会执行 terminated() 方法。线程池中的 terminated() 方法是空实现,可以重写该方法进行相应的处理。
  • 线程池在 SHUTDOWN 状态,任务队列为空且执行中任务为空,线程池就会由 SHUTDOWN 转变为 TIDYING 状态。
  • 线程池在 STOP 状态,线程池中执行中任务为空时,就会由 STOP 转变为 TIDYING 状态。

5. TERMINATED:线程池彻底终止。线程池在 TIDYING 状态执行完 terminated() 方法就会由 TIDYING 转变为 TERMINATED 状态。

状态转换如图

线程池包含哪些状态?-度崩网-几度崩溃

JDK 源码中的解释如下

状态:

The runState provides the main lifecyle control, taking on values:RUNNING:Accept new tasks and process queued tasksSHUTDOWN: Don't accept new tasks, but process queued tasksSTOP: Don't accept new tasks, don't process queued tasks,and interrupt in-progress tasksTIDYING:All tasks have terminated, workerCount is zero,the thread transitioning to state TIDYINGwill run the terminated() hook methodTERMINATED: terminated() has completed

状态间的变化

RUNNING -> SHUTDOWN On invocation of shutdown(), perhaps implicitly in finalize()(RUNNING or SHUTDOWN) -> STOP On invocation of shutdownNow()SHUTDOWN -> TIDYING When both queue and pool are emptySTOP -> TIDYING When pool is emptyTIDYING -> TERMINATED When the terminated() hook method has completedThreads waiting in awaitTermination() will return when thestate reaches TERMINATED.

给TA打赏
共{{data.count}}人
人已打赏
Java

synchronized锁的升级原理是什么?

2020-7-31 0:10:00

Java

如何创建、启动 Java 线程?

2020-7-31 0:13:20

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索