java命名空间java.lang.management接口threadmxbean的类成员方法:
findmonitordeadlockedthreads定义及介绍
本文导语:
findmonitordeadlockedthreads
long[] findmonitordeadlockedthreads()
找到处于死锁状态(等待获取对象监视器)的线程的周期。即线程被阻塞,等待进入同步块或在 object.wait 调用后等待重新进入同步块,此时每个线程拥有一个监视器,且同时...
findmonitordeadlockedthreads
long[] findmonitordeadlockedthreads()
- 找到处于死锁状态(等待获取对象监视器)的线程的周期。即线程被阻塞,等待进入同步块或在
object.wait
调用后等待重新进入同步块,此时每个线程拥有一个监视器,且同时试图获取已经由周期中的另一个线程拥有的另一个监视器。
更正式地说,如果线程属于某个周期,处于“等待已被占用的对象监视器”的关系中,则该线程处于监视器死锁 状态。在最简单的情况下,线程 a 被阻塞,在等待线程 b 拥有的监视器,而线程 b 也被阻塞,在等待线程 a 拥有的监视器。
此方法设计用于进行故障排除,但不适合进行同步控制。它可能成为开销很大的操作。
此方法只查找涉及对象监视器的死锁。要查找涉及对象监视器和可拥有同步器的死锁,应该使用 finddeadlockedthreads
方法。
- 返回:
- 处于监视器死锁状态的线程(如果有)的 id 数组;否则返回 null。
- 抛出:
securityexception
- 如果存在安全管理器,且调用方不具有 managementpermission("monitor")。- 另请参见:
finddeadlockedthreads()