码迷,mamicode.com
首页 > 编程语言 > 详细

Java中多线程的六种状态详解

时间:2021-02-16 12:34:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:初始   zed   lazy   http   monitor   term   特定   info   rmi   

在我们的Thread类中,我们可以看到多线程有六种状态。
技术图片
NEW:初始状态
RUNNABLE:运行状态
BLOCKED:阻塞状态
WAITING:等待状态
TIMED_WAITING:超时等待状态
TERMINATED:终止状态

六种状态之间的转化关系如下:

技术图片
1、NEW 表示线程创建成功,但没有运行,在 new Thread 之后,没有 start 之前,线程都处于 NEW 状态;
2、RUNNABLE 表示线程正在运行中,当我们运行 strat 方法,子线程被创建成功之后,子线程的状态变成 RUNNABLE;
3、TERMINATED 表示线程已经运行结束,子线程运行完成、被打断、被中止,状态都会从 RUNNABLE 变成 TERMINATED;
4、BLOCKED 表示线程被阻塞,如果线程正好在等待获得 monitor lock 锁,比如在等待进入 synchronized 修饰的代码块或方法时,会从 RUNNABLE 变成 BLOCKED;
5、 WAITING 和 TIMED_WAITING 都表示等待,现在在遇到 Object#wait、Thread#join、
LockSupport#park 这些方法时,线程就会等待另一个线程执行完特定的动作之后,才能结
束等待,只不过 TIMED_WAITING 是带有等待时间的;

Java中多线程的六种状态详解

标签:初始   zed   lazy   http   monitor   term   特定   info   rmi   

原文地址:https://www.cnblogs.com/jichi/p/14399921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!