线程生命周期的5个阶段:
- NEW
- RUNNABLE
- RUNNING
- BLOCKED
- TERMINATED
-
NEW
-
用
new
创建一个线程,并不在执行状态,因为没有调用start
方法启动线程,该线程的状态为NEW
状态。
NEW
状态通过start
方法进入RUNNABLE
状态。
RUNNABLE
-
调用
start
方法,线程进入RUNNABLE
状态。此时在JVM
中创建一个线程,但是线程创建以后,不一定立即执行,需要等待 CPU 的调度。RUNNABLE
状态线程只能意外终止或者进入RUNNING
状态。
RUNNING
-
一个正在
RUNNING
状态的线程事实上也是RUNNABLE
的,反过来则不成立。
BLOCKED
-
BLOCKED
状态能进入TERMINATED
或RUNNABLE
状态。
TERMINATED
- 该状态是一个线程的最终状态,该状态中的线程不会切换到其他状态,意味着该线程的整个生命周期都结束了。