有人可以解释我的区别Sleeping
,Wait
,Park
,和Monitor
在VisualVM的线程状态。
这是我发现的:
Running
:线程仍在运行。
Sleeping
:线程正在睡眠(在线程对象上调用了method yield()方法)
Wait
:线程被互斥锁或屏障阻止,并且正在等待另一个线程释放锁
Park
:停放的线程被挂起,直到获得许可。通常通过在线程对象上调用方法unpark()来取消线程
Monitor
:线程正在等待条件变为真以恢复执行
我无法理解的是国家公园,实际上是什么暂停线程?如何在代码中检测导致线程挂起执行的原因?
有人可以在这方面指导我。
谢谢。