首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java JVM分析,线程状态-- "Monitor“状态是什么意思?

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

Stack Overflow用户
提问于 2011-07-15 18:01:19
回答 3查看 30.8K关注 0票数 81

我使用visualVM连接一个多线程Java应用程序,线程有4种状态,即运行、睡眠、等待、监控。此监控状态意味着什么?wait和Monitor的区别是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-15 18:07:47

这些状态与Thread.State枚举中提到的状态相同。“等待”意味着,正如文档所说的那样:

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

不带timeout

  • Thread.join且不带timeout

  • LockSupport.park

  • Object.wait

BLOCKED”是监视器状态,在这种状态下,线程正在等待获得对象上的锁(因为它试图进入一个监视器块或方法,而另一个线程已经持有相关的锁)。

票数 89
EN

Stack Overflow用户

发布于 2011-07-15 18:11:47

这不是“监控”状态...它指示线程处于Thread.State.BLOCKED状态。我看到了另一个很好的答案,我会告诉你this link的更深层次的解释

票数 7
EN

Stack Overflow用户

发布于 2011-07-15 18:48:52

Monitor将意味着线程正在等待获得对象上的锁。例如,当一个线程正在运行一个同步的方法,而另一个线程试图在同一对象上调用它时,它将无法调用它,直到该方法的第一次调用完成。这是因为第一个线程在该对象上有一个监视器或锁,所以第二个线程必须等待,直到它被释放。

来自Oracle Threading Tutorials

“同步是围绕称为内部锁或监视器锁的内部实体构建的。( API规范通常将此实体简称为”监视器“。)内部锁在同步的两个方面都起着作用:强制独占访问对象的状态和建立对可见性至关重要的发生前关系。”

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6705400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档