怎么才能知道java里面的锁信息呢?

How can I know the lock information in java?

有什么工具或方法可以获取java中锁的所有信息吗?

例如,如果有一个java程序,它会创建两个线程,并且两个线程都需要锁定某个变量。有没有什么工具可以输出哪个线程锁定了哪个变量的信息?

您可以通过 ThreadMXBean 使用 ThreadInfo#getLockedSynchronizers() (JavaDoc) 获取线程上当前拥有 锁的 LockInfo 数组。 LockInfo 只会告诉您锁的 class 名称和身份哈希码,但这足以跟踪锁对象。