public static enum Thread.Stateextends Enum<Thread.State>线程状态。线程可以处于下列状态之一:
1.NEW
至今尚未启动的线程的状态。
2.RUNNABLE
可运行线程的线程状态。处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。
3.BLOCKED
受阻塞并且正在等待监视器锁的某一线程的线程状态。处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。
4.WAITING
某一等待线程的线程状态。某一线程因为调用下列方法之一而处于等待状态:
- 不带超时值的 Object.wait
- 不带超时值的 Thread.join
LockSupport.park
处于等待状态的线程正等待另一个线程,以执行特定操作。 例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。已经调用了 Thread.join() 的线程正在等待指定线程终止。
5.TIMED_WAITING具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态:
- Thread.sleep
- 带有超时值的 Object.wait
- 带有超时值的 Thread.join
- LockSupport.parkNanos
- LockSupport.parkUntil
6.TERMINATED
已终止线程的线程状态。线程已经结束执行。
注意:在给定时间点上,一个线程只能处于一种状态。这些状态是虚拟机状态,它们并没有反映所有操作系统线程状态。
为了展现线程在运行时的状态及其转换,我画了下面这个图:

- 大小: 34.8 KB
分享到:
相关推荐
`Thread` 类属于 `java.lang` 包,是 Java 中实现多线程的基础类。 2. **`java.lang.Number` (F):** 错误。`Number` 类在 `java.lang` 包中,但它并不是一个具体的数值类型,而是一个抽象类,用于表示数值类型的...
- `java.lang.Thread`: 可以被继承 (T) - `java.lang.Number`: 不可被继承 (F),因为它是抽象类 - `java.lang.Double`: 不可被继承 (F),`Double` 类是一个最终类(final class) - `java.lang.Math`: 不可被...
### 15个顶级Java多线程面试题详解 #### 题目一:线程执行顺序控制 **题目:** 如何确保线程T2在T1执行完毕后执行,而T3在T2执行完毕后执行? **解答:** 在Java中可以通过`Thread.join()`方法来实现线程之间的顺序...
java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" daemon prio=10 tid=0x000000000c515000 nid=0xcbac waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Monitor Ctrl-...
Java中的线程处理是通过`java.lang.Thread`类及其相关接口来实现的。本篇文章将深入探讨Java中的线程概念、创建线程的方式以及线程的管理与同步。 一、线程基础 线程允许程序并发执行,提高了资源利用率和响应速度...
* 虚拟的 CPU,由 java.lang.Thread 类封装和虚拟 CPU 来实现 * CPU 所执行的代码,传递给 Thread 类对象 * CPU 所处理的数据,传递给 Thread 类对象 三、创建线程 * 方式1:定义一个线程类,它继承类 Thread 并...
Java线程可以通过继承`java.lang.Thread`类或实现`Runnable`接口来创建。 ##### 创建线程 1. **继承Thread类** - 创建`Thread`类的子类并重写`run()`方法。 - 实例化子类对象,并调用`start()`方法启动线程。 ...
在 Java 中,java.lang.Thread.State 是一个枚举类型,用于描述线程的状态。例如,在上面的代码中,"aThread" 和 "bThread" 都是 BLOCKED 状态,表示它们正在等待锁资源。 jstack jstack 是一个命令行工具,用于...
在Java中,`java.lang.Thread.State`枚举类定义了线程的六种状态,分别是: 1. **NEW**:新建状态,线程被创建但尚未调用`start()`方法。 2. **RUNNABLE**:运行状态,线程可能正在执行,也可能在等待CPU调度。 3. ...