android - Dalvik 线程状态是什么?

标签 android dalvik android-anr-dialog

每个 ANR 转储都列出了 ANR 发生时所有线程的状态。我知道 WAIT 是什么意思,但是 SUSPENDEDMONITOR 是什么意思?

提前致谢...

最佳答案

Dalvik 线程状态总结:

  • INITIALIZING - 尚未运行。
  • 开始 - 尚未运行,但即将运行。
  • ZOMBIE - 已故(你不应该看到这个)。
  • RUNNING (a/k/a RUNNABLE) - 线程正在运行。 VM 必须挂起所有线程以执行堆栈转储,因此除了正在转储堆栈的线程之外,您通常不会看到任何线程出现这种情况。
  • WAIT - 调用 wait() 的线程正在耐心等待。
  • TIMED_WAIT - 线程调用 wait(),超时。 (Thread.sleep() 实现为定时等待。)
  • MONITOR - 线程被监视器锁阻塞,即它在尝试进入“同步” block 时卡住。
  • NATIVE - 线程正在本地代码中执行。 VM 不会挂起 native 代码中的线程,除非它们进行 JNI 调用(此时它们会转换为 RUNNING,然后立即转换为 SUSPENDED)。
  • VMWAIT - 线程被阻止获取 VM 资源,如内部互斥锁。或者可能正在等待做某事(例如编译器和 GC 线程)。
  • SUSPENDED - 线程可运行,但已被挂起。如前所述,堆栈转储器喜欢在遍历堆栈之前挂起所有线程,因此您的繁忙线程通常会以这种方式显示。 (在旧版本中,此状态不存在;“暂停”曾经是“使用非零 sCount 运行”。)

关于android - Dalvik 线程状态是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207231/

相关文章:

安卓admob权限

android - Android 4.4 上的 Apache HttpClient 4.3

Java GC : How does Java GC clears WeakReference object?

dalvik - 不构建核心库时对核心类(java.* 或 javax.*)的不明智或错误使用

android - Android平台如何检测ANR问题?

java - Android 在尝试读取文本或文档文件时没有响应

android - Android 4.x 中的 TextView 字体

java - Android 中 Django 的 JSON 响应

Android 和链接库

android - 如何在 sharedPreferences 中分析 ANR