我遇到了一个问题,即我的游戏中的一个关键线程因为无法发现的原因而被锁定。
如何找到线程被锁定时尝试执行的代码行?
我正在使用Eclipse IDE。
谢谢!
答案 0 :(得分:3)
您可以使用 Eclipse调试器。不要通过正常运行按钮运行应用程序,但除了它之外还有调试按钮。
玩游戏并创造将陷入僵局的局面。然后,您可以转到Eclipse并切换到调试透视图。您将看到所有正在运行的线程和执行的方法(完整的堆栈是精确的)。
答案 1 :(得分:0)
当应用被阻止时,您需要进行线程转储。从控制台它应该是这样的:
jstack <pid>
或:
kill -3 <pid>
其中<pid>
是运行应用程序的jvm的进程ID。
这将告诉你哪个线程与stacktrace一起被阻塞,导致执行那段代码。