根据太阳微系统,线程只有四个阶段:
1. New
2. Runnable
3. Non-Runnable (Blocked)
4. Terminated
根据他们的说法,没有运行状态。
为什么会这样?
线程运行时的状态是什么?
> https://docs.oracle.com/javase/9/docs/api/java/lang/Thread.State.html
根据文档(你读过它,不是吗?:)(RUNNABLE 的意思是"在 Java 虚拟机中执行的线程处于这种状态"。
因此,似乎只是枚举中的单词选择使您感到困惑。
最好看文档:
public static final Thread.State RUNNABLE
可运行的线程状态线。处于可运行状态的线程正在 Java 中执行虚拟机,但它可能正在等待来自操作系统,如处理器。
根据Java文档,这些是定义的状态
- 新 :当创建线程对象(我们称之为T(时。
- 可运行 :当 T 启动并参与消耗 CPU 周期时。它是运行状态。
- 已阻止:当 T 在锁的监视器上被阻止时(T 可能会被阻止以进入同步块或方法,因为其他线程正在执行该块或方法( 等待
- :线程正在等待(线程调度程序不会选择以消耗 CPU 周期(。在收到通知或中断之前,它将保持此状态。
- TIMED_WAITING :类似于等待状态,但有定义的时间段。一旦时间段结束,它就会摆脱这种状态
- 已终止:线程执行结束(运行方法结束(。
https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.State.html