假设一个线程在 Java 中的同步函数内执行,另一个线程想要访问相同的方法,但它必须等到第一个线程完成。 第二个线程如何知道哪个线程正在锁定对象。 我想打印第一个线程的详细信息,并且可能从第一个线程启动的地方打印。
最佳答案
如果您正在使用 java.util.concurrent.locks.ReentrantLock
,则子类可以调用 getOwner
。
或者,您可以使用 JMX。遍历线程以使用适当的 getLockedMonitors()
或 getLockedSynchronizers()
查找 java.lang.management.ThreadInfo
。
关于java - 如何获取拥有对象锁的线程的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192151/