Java JVM 性能分析,线程状态 - “监视”状态是什么意思?
2022-08-31 12:10:32
我用visualVM连接一个多线程Java应用程序,线程有4种状态,即正在运行、休眠、等待、监控。此监视状态是什么意思?等待和监视之间有什么区别?
我用visualVM连接一个多线程Java应用程序,线程有4种状态,即正在运行、休眠、等待、监控。此监视状态是什么意思?等待和监视之间有什么区别?
这些状态与 Thread.State
枚举中提到的状态相同。正如文档所说,“等待”的意思是:
由于调用以下方法之一,线程处于等待状态:
- Object.wait,没有超时
- 没有超时的线程.连接
- LockSupport.park
“Monitor”是被阻止
的状态,在这种状态下,线程正在等待在对象上获取锁定(因为它正在尝试进入块或方法,而另一个线程已经持有关联的锁定)。synchronized