阅读(3983) (7)

鸿蒙OS Thread.State

2022-04-28 16:04:08 更新

Thread.State

java.lang.Object

|---java.lang.Enum<Thread.State&

|---|---java.lang.Thread.State

public static enum Thread.State
extends Enum<Thread.State>

线程状态。 线程可以处于以下状态之一:

  • NEW 尚未启动的线程处于此状态。
  • RUNNABLE 在 Java 虚拟机中执行的线程处于此状态。
  • BLOCKED 阻塞等待监视器锁的线程处于此状态。
  • WAITING 无限期等待另一个线程执行特定操作的线程处于此状态。
  • TIMED_WAITING 等待另一个线程执行操作达指定等待时间的线程处于此状态。
  • TERMINATED 已退出的线程处于此状态。

一个线程在给定的时间点只能处于一种状态。 这些状态是不反映任何操作系统线程状态的虚拟机状态。

枚举常量摘要

枚举常量 描述
BLOCKED 线程阻塞等待监视器锁的线程状态。
NEW 尚未启动的线程的线程状态。
RUNNABLE 可运行线程的线程状态。
TERMINATED 已终止线程的线程状态。
TIMED_WAITING 具有指定等待时间的等待线程的线程状态。
WAITING 等待线程的线程状态。

方法总结

修饰符和类型 方法 描述
static Thread.State valueOf(String name) 返回具有指定名称的此类型的枚举常量。
static Thread.State[] values() 按照声明的顺序返回包含此枚举类型常量的数组。
从类 java.lang.Enum 继承的方法
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
从类 java.lang.Object 继承的方法
getClass, notify, notifyAll, wait, wait, wait

枚举常量详细信息

NEW

public static final Thread.State NEW

尚未启动的线程的线程状态。

RUNNABLE

public static final Thread.State RUNNABLE

可运行线程的线程状态。 处于可运行状态的线程正在 Java 虚拟机中执行,但它可能正在等待来自操作系统的其他资源,例如处理器。

BLOCKED

public static final Thread.State BLOCKED

线程阻塞等待监视器锁的线程状态。 处于阻塞状态的线程正在等待监视器锁进入同步块/方法或调用 Object#wait() 后重新进入同步块/方法。

WAITING

public static final Thread.State WAITING

等待线程的线程状态。 由于调用以下方法之一,线程处于等待状态:

  • Object#wait() 没有超时
  • 没有超时的 Thread.join
  • 锁支持#park()

处于等待状态的线程正在等待另一个线程执行特定操作。 例如,一个对对象调用 Object.wait() 的线程正在等待另一个线程对该对象调用 Object.notify() 或 Object.notifyAll()。 已调用 Thread.join() 的线程正在等待指定线程终止。

TIMED_WAITING

public static final Thread.State TIMED_WAITING

具有指定等待时间的等待线程的线程状态。 由于以指定的正等待时间调用以下方法之一,线程处于定时等待状态:

  • Thread.sleep
  • Object#wait(long) with timeout
  • Thread.join with timeout
  • LockSupport#parkNanos
  • LockSupport#parkUntil

TERMINATED

public static final Thread.State TERMINATED

已终止线程的线程状态。 线程已完成执行。

方法详情

values

public static Thread.State[] values()

按照声明的顺序返回包含此枚举类型常量的数组。 此方法可用于迭代常量,如下所示:

for (Thread.State c : Thread.State.values())
    System.out.println(c);

返回:

包含此枚举类型的常量的数组,按声明的顺序排列

valueOf

public static Thread.State valueOf(String name)

返回具有指定名称的此类型的枚举常量。 该字符串必须与用于在此类型中声明枚举常量的标识符完全匹配。 (不允许使用无关的空白字符。)

参数:

参数名称 参数描述
name 要返回的枚举常量的名称。

返回:

具有指定名称的枚举常量

Throws:

Throw名称 Throw描述
IllegalArgumentException 如果此枚举类型没有具有指定名称的常量
NullPointerException 如果参数为null