Thread.java | Thread.cpp | 说明 |
---|---|---|
TERMINATED | ZOMBIE | 线程死亡,停止运行 |
RUNNABLE | RUNNING/RUNNABLE | 线程可运行或正在运行 |
TIMED_WAITING | TIMED_WAIT | 执行了带有超时参数的wait、sleep或join函数 |
BLOCKED | MONITOR | 线程阻塞,等待获取对象锁 |
WAITING | WAIT | 执行了无超时参数的wait函数 |
NEW | INITIALIZING | 新建,正在初始化,为其分配资源 |
NEW | STARTING | 新建,正在启动 |
RUNNABLE | NATIVE | 正在执行JNI本地函数 |
WAITING | VMWAIT | 正在等待VM资源 |
RUNNABLE | SUSPENDED | 线程暂停,通常是由于GC或者debug被暂停 |
UNKNOWN | 未知状态 |
对比下来,发现Thread.java
中很多状态都很模糊,不如Thread.cpp
中定义的完善,需要结合线程当时的堆栈信息来分析具体的状态。