具体来看下 State.RUNNABLE 状态,即所谓的可运行状态。(以下简称 runnable)
再次强调,这里谈论的是 Java 虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。
具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态:
什么是 RUNNABLE?
直接看它的 Javadoc 中的说明:
一个在 JVM 中执行的线程处于这一状态中。(A thread executing in the Java virtual machine is in this state.)
而传统的进(线)程状态一般划分如下:
注:这里的进程指早期的单线程进程,这里所谓进程状态实质就是线程状态。
那么 runnable 与图中的 ready 与 running 区别在哪呢?
与传统的 r