Java JVM分析,线程状态 - “Monitor”状态是什么意思?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (752)

我使用visualVM连接一个多线程的Java应用程序,线程有4个状态,分别是running,sleeping,wait,monitor。这个监控状态是什么意思?等待和监视器有什么区别?

提问于
用户回答回答于

这些状态与Thread.State枚举中提到的相同。“等待”的意思是,如文件所述:

由于调用以下方法之一,线程处于等待状态:

  • Object.wait没有超时
  • 无超时的Thread.join
  • LockSupport.park

“Monitor”是BLOCKED线程正在等待获取对象上的锁的状态(因为它正试图synchronized在另一个线程已经拥有关联的锁的同时输入一个块或方法)。

用户回答回答于

这不是“监控”状态......它表示线程处于Thread.State.BLOCKED状态。我看到还有一个很好的答案,我只是指出你对这个链接的更深入的解释

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励