Java 线程等待锁定它已经锁定的对象

标签 java thread-dump

分析线程转储时,我有很多线程正在等待锁定一个已经锁定的监视器。在下面的示例中,监视器 0x000000044158d3d0 被同时获取和锁定。

关于这个案子有什么线索吗?

"ORB Run Thread" #124 prio=5 os_prio=0 tid=0x00007f16a81b6800
nid=0x76f3 in Object.wait() [0x00007f165eef2000]   
java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x000000044158d3d0> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:502)
    at com.sun.corba.se.impl.orb.ORBImpl.run(ORBImpl.java:1238)
    - locked <0x000000044158d3d0> (a java.lang.Object)
    at org.wildfly.iiop.openjdk.service.CorbaORBService$ORBRunner.run(CorbaORBService.java:241)
    at java.lang.Thread.run(Thread.java:748)

最佳答案

at java.lang.Object.wait(Native Method)
- waiting on <0x000000044158d3d0> (a java.lang.Object)

线程没有等待锁定对象。它正在等待另一个线程调用 notify()notifyAll() .

关于Java 线程等待锁定它已经锁定的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161503/

相关文章:

java - 如何计算字符串中某个字符出现的次数?

java - 类型变量 vs instanceof 用于识别

java - 在真实设备中运行应用程序时遇到问题

java - 有没有办法使用 JVMTI 生成定期的 java 线程转储?

java - 如何在Cloud Foundry上获取java应用程序的threaddump?

java - 什么时候应该为 JVM 获取线程转储

java - 为什么 TrayIcon 不出现?

java - Netbeans:java项目中的 "main"类

java - 如何在 Windows 上获取不在控制台中运行的 Java 进程的线程和堆转储

java - 线程转储分析工具/方法