我有一个应用程序目前卡住了,我正在尝试了解原因。 在 kill -3(线程转储)输出中,我看到许多线程在等待锁定一个对象(特别是 - 等待 Vector 的同步方法),但我没有看到任何线程持有该锁。
知道如何调试吗?
谢谢
附言我知道 Vector 很旧,更推荐使用 ArrayList,但这是我正在尝试调试的遗留代码。
最佳答案
您描述的情况听起来像是典型的死锁案例。
您可以(或许应该)使用 Eclipse 或 IntelliJ Idea 等 IDE,通过它们您可以逐步调试您的应用程序并准确了解它停止的位置和要执行的操作。
或者,粘贴一些代码有助于澄清情况并根据 JVM 版本等描述您的环境。
关于java - 许多线程等待锁定对象,但没有线程持有该锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722845/