为什么 Java 线程没有 Running 状态?
作者:国栋 https://my.oschina.net/goldenshaw/blog/705397 Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态: 什么是 RUNNABLE? 直接看它的 Javadoc 中的说明: 一个在 JVM 中执行的线程处于这一状态中。(A threadexecuting in the Java virtual machine is in this state.) 而传统的进(线)程状态一般划分如下: 注:这里的进程指早期的单线程进程,这里所谓进程状态实质就是线程状态。那么 runnable 与图中的 ready 与 running 区别在哪呢? 与传统的ready状态的区别 更具体点,javadoc 中是这样说的: 处于 runnable 状态下的线程正在 Java 虚拟机中执行,但它可能正在等待来自于操作系统的其它资源,比如处理器。 A thread in the runnable state is executing in the Java virtual machine but it may be waiting forother resources from the operating system