有哪些技术可以用来调试一个Java程序中看起来是死锁的问题。我的IDE是Eclipse,我认为我已经确定了两个死锁的线程。在调试器中,右键单击任何相关的线程并选择暂停会暂停该线程并显示当前正在执行的代码。尝试步入或步过所涉及的行似乎没有效果-线程状态更改为“ Stepping”,控制不会返回调试器,除非再次单击暂停。
谢谢
有哪些技术可以用来调试一个Java程序中看起来是死锁的问题。我的IDE是Eclipse,我认为我已经确定了两个死锁的线程。在调试器中,右键单击任何相关的线程并选择暂停会暂停该线程并显示当前正在执行的代码。尝试步入或步过所涉及的行似乎没有效果-线程状态更改为“ Stepping”,控制不会返回调试器,除非再次单击暂停。
谢谢
几分钟前我偶然发现了这个链接:
http://runnerwhocodes.blogspot.com/2007/10/deadlock-detection-with-eclipse.html
对于我来说,它似乎是检测死锁的最佳方法(即使在某些情况下无法帮助解决死锁问题,例如与EMT-Locks结合使用)。
ctrl+break
键,这将为您提供线程转储。一旦遇到死锁,这可能会有所帮助。但是,如果死锁并没有太经常出现,通过这种方式捕获死锁可能会很困难。