线程可以处于下列状态之一:
-
NEW
至今尚未启动的线程处于这种状态。 -
RUNNABLE
正在 Java 虚拟机中执行的线程处于这种状态。 -
BLOCKED
受阻塞并等待某个监视器锁的线程处于这种状态。 -
WAITING
无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。 -
TIMED_WAITING
等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。 -
TERMINATED
已退出的线程处于这种状态。
调用与线程相关的方法是改变状态的主要原因,其因果关系如图:
图片出处:并发多线程核心编程技术.pdf_高红岩著.