gpt4 book ai didi

java - 使用 JVMTI 进行死锁检测

转载 作者:行者123 更新时间:2023-12-01 15:50:19 46 4
gpt4 key购买 nike

我想知道是否可以使用 JVMTI 动态检测 Java 中的死锁。有两个事件指示使用同步语句在监视器上执行的操作:

监控竞争输入

Sent when a thread is attempting to enter a Java programming language monitor already acquired by another thread.

监控已输入的争用

Sent when a thread enters a Java programming language monitor after waiting for it to be released by another thread.

这意味着,使用 JVMTI 我只能看到那些已经锁定的监视器。我想重建一个等待图,但没有事件指示我,已获取一个锁,该锁由任何线程持有。这是不可能的。

还有其他选择吗? Unix 上的 SIGQUIT 命令允许显示死锁的线程转储,这在 JVMTI 中似乎是不可能的。

最佳答案

您应该能够通过 JMX 获取此信息。

尝试

ManagementFactory.getThreadMXBean().findMonitorDeadlockedThreads();

关于java - 使用 JVMTI 进行死锁检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216416/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com