因为最近的工作中需要关注APP中的线程,在DDMS中可以查看某个应用的线程:
可以看到每个线程都有自己的status属性,那不同的status分别代表什么情况呢?
running – executing application code – 正在执行应用程序,准确的来说正在处理消息。
sleeping – called Thread.sleep() – 执行了Thread.sleep() 方法,线程让出了CPU,正在休眠。
monitor – waiting to acquire a monitor lock – 在正等待获取一个监听锁,线程被阻塞。
wait – in Object.wait() – 在Object.wait() 方法中,线程被阻塞。
native – executing native code – 执行了原生代码,这个对于 带有消息队列的线程是正常的状态,表示消息队列没有任何消息,线程在native 代码中进行无限循环,直到消息队列中出现新的消息,消息队列才会返回Java 代码处理消息。
vmwait – waiting on a VM resource – 正在等待一个虚拟机资源
zombie – thread is in the process of dying – 该线程已死
init – thread is initializing (you shouldn’t see this) – 线程正在初始化 (你不会看到这个)
starting – thread is about to start (you shouldn’t see this either) – 线程正在启动中 (这个你也不会看到)
from:http://blog.csdn.net/zhouyingge1104/article/details/42556163