ThreadState(defined at “dalvik/vm/thread.h “)
THREAD_UNDEFINED= -1, /* makes enum compatible with int32_t */
THREAD_ZOMBIE= 0, /* TERMINATED */
THREAD_RUNNING = 1, /* RUNNABLE or running now */
THREAD_TIMED_WAIT= 2, /* TIMED_WAITING in Object.wait() */
THREAD_MONITOR= 3, /* BLOCKED on a monitor */
THREAD_WAIT= 4, /* WAITING in Object.wait() */
THREAD_INITIALIZING=5, /* allocated, not yet running */
THREAD_STARTING= 6, /* started, not yet on thread list */
THREAD_NATIVE= 7, /* off in a JNI native method */
THREAD_VMWAIT= 8, /* waiting on a VM resource */
THREAD_SUSPENDED = 9, /* suspended,usually by GC or debugger */
Thread.java中定义的状态 Thread.cpp中定义的状态 说明
TERMINATED 0:ZOMBIE 线程死亡,终止运行
RUNNABLE 1:RUNNING/RUNNABLE 线程可运行或正在运行
TIMED_WAITING 2:TIMED_WAIT 执行了带有超时参数的wait、sleep或join函数
BLOCKED 3:MONITOR 线程阻塞,等待获取对象锁
WAITING 4:WAIT 执行了无超时参数的wait函数
NEW 5:INITIALIZING 新建,正在初始化,为其分配资源
NEW 6:STARTING 新建,正在启动
RUNNABLE 7:NATIVE 正在执行JNI本地函数
WAITING 8:VMWAIT 正在等待VM资源
RUNNABLE 9:SUSPENDED 线程暂停,通常是由于GC或debug被暂停
-1:UNKNOWN 未知状态
如上状态中,线程处于THREAD_RUNNING = 1时为正常状态。