在指定的时间点 一个java 线程状态囿且只有一种状态。 这些状态是 JVM 的状态 他们并没有反映操作系统的状态。
在定义中 我们知道共有 6 种类型。
至今尚未启动的java 线程状态处於这种状态 |
正在 Java 虚拟机中执行的java 线程状态处于这种状态 因为可能在等待其他的资源, 比如处理器 |
受阻塞并等待某个监视器锁的java 线程状態处于这种状态 |
无限期地等待另一个java 线程状态来执行。某一特定操作的java 线程状态处于这种状态 |
等待另一个java 线程状态来执行取决于指定等待时间的操作的java 线程状态处于这种状态 |
已退出的java 线程状态处于这种状态 |
借用 《Java 并发编程的艺术》图一张
- java 线程状态创建后未启动未 「NEW」 状态, 通过 start() 函数转换为 「RUNNABLE」状态
也就是说, 全部的状态是以 「RUNNABLE」 为中心的
// 该条件永远不成立, 只是为了计算