Java JVM 性能分析,线程状态 - “监视”状态是什么意思?

2022-08-31 12:10:32

enter image description here

我用visualVM连接一个多线程Java应用程序,线程有4种状态,即正在运行、休眠、等待、监控。此监视状态是什么意思?等待和监视之间有什么区别?


答案 1

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

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

  • Object.wait,没有超时
  • 没有超时的线程.连接
  • LockSupport.park

“Monitor”是被阻止的状态,在这种状态下,线程正在等待在对象上获取锁定(因为它正在尝试进入块或方法,而另一个线程已经持有关联的锁定)。synchronized


答案 2

这不是“监视”状态...它指示线程处于该状态。我看到还有另一个很好的答案,我只是指向你这个链接以获得更深入的解释Thread.State.BLOCKED