java - 如何获取拥有对象锁的线程的详细信息

标签 java multithreading

假设一个线程在 Java 中的同步函数内执行,另一个线程想要访问相同的方法,但它必须等到第一个线程完成。 第二个线程如何知道哪个线程正在锁定对象。 我想打印第一个线程的详细信息,并且可能从第一个线程启动的地方打印。

最佳答案

如果您正在使用 java.util.concurrent.locks.ReentrantLock,则子类可以调用 getOwner

或者,您可以使用 JMX。遍历线程以使用适当的 getLockedMonitors()getLockedSynchronizers() 查找 java.lang.management.ThreadInfo

关于java - 如何获取拥有对象锁的线程的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192151/

相关文章:

java - 解析多个 picocli(子)命令和 shell

java - 具有多个子网格的 ModelRenderable 仅显示一个子网格

c# - 多线程应用程序中的锁定 C#

python - 如果没有从主模块调用 wx.app.mainloop,线程将无法启动

python - 如何在不断检查输入线程的同时运行后台程序?

java - Netbeans 和编译错误

java - 适用于Android的Java EWS库

ios - 如何在 Objective-C 中的特定时间后停止执行方法?

java - USACO 培训 – 文本提交给我一个错误 : "Error:_Main_method_not_found_in_class_test"

c - 如何在多线程矩阵乘法中使用线程池和消息队列?