VisualVM - 线程状态

23 浏览
0 Comments

VisualVM - 线程状态

有人能否解释一下在VisualVM中的SleepingWaitParkMonitor线程状态之间的区别。

这是我找到的内容:

Running:线程仍在运行。

Sleeping:线程正在睡眠(在线程对象上调用了yield()方法)

Wait:线程被互斥体或屏障阻塞,并正在等待另一个线程释放锁。

Park:停放的线程被挂起,直到它们被授予许可。通常通过在线程对象上调用unpark()方法来解除线程的挂起状态。

Monitor:线程正在等待条件成为真以恢复执行。

我无法理解的是Park状态,是什么导致了线程的挂起?在代码中如何检测线程挂起的原因?

有人能否在这方面给我指导一下。

谢谢。

0