其他分享
首页 > 其他分享> > 日拱一卒 | 线程包括哪些状态?状态之间是如何变化的?

日拱一卒 | 线程包括哪些状态?状态之间是如何变化的?

作者:互联网

线程的生命周期

线程包括哪些状态的问题说专业一点就是线程的生命周期。
不同的编程语言对线程的生命周期封装是不同的。

Java 中线程的生命周期

Java 语言中线程共有六种状态。

  1. NEW(初始化状态)

  2. RUNNABLE(可运行 / 运行状态)

  3. BLOCKED(阻塞状态)

  4. WAITING(无限时等待)

  5. TIMED_WAITING(有限时等待)

  6. TERMINATED(终止状态) 在操作系统层面,Java 线程中的 BLOCKED、WAITING、TIMED_WAITING 是一种状态(休眠状态)。即只要 Java 线程处于这三种状态之一,就永远没有 CPU 的使用权。

如图:

Java 中线程的状态的转变

1. NEW 到 RUNNABLE 状态Java 刚创建出来的 Thread 对象就是 NEW 状态,不会被操作系统调度执行。从 NEW 状态转变到 RUNNABLE 状态调用线程对象的 start() 方法就可以了。

2. RUNNABLE 与 BLOCKED 的状态转变

3. RUNNABLE 与 WAITING 的状态转变

4. RUNNABLE 与 TIMED_WAITING 的状态转变

TIMED_WAITING 和 WAITING 状态的区别,仅仅是调用的是超时参数的方法。5. RUNNABLE 到 TERMINATED 状态

标签:状态,RUNNABLE,Java,哪些,WAITING,线程,转变
来源: https://blog.csdn.net/weixin_42388292/article/details/117718187