如何/在哪里找到线程被锁定的位置?

时间:2014-05-30 20:49:05

标签: java eclipse

我遇到了一个问题,即我的游戏中的一个关键线程因为无法发现的原因而被锁定。

如何找到线程被锁定时尝试执行的代码行?

我正在使用Eclipse IDE。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用 Eclipse调试器。不要通过正常运行按钮运行应用程序,但除了它之外还有调试按钮。

enter image description here

玩游戏并创造将陷入僵局的局面。然后,您可以转到Eclipse并切换到调试透视图。您将看到所有正在运行的线程和执行的方法(完整的堆栈是精确的)。

enter image description here

答案 1 :(得分:0)

当应用被阻止时,您需要进行线程转储。从控制台它应该是这样的:

jstack <pid>

或:

kill -3 <pid>

其中<pid>是运行应用程序的jvm的进程ID。

这将告诉你哪个线程与stacktrace一起被阻塞,导致执行那段代码。