如何检测 Java 中的无限循环?

How detect infinite loop in Java?

我运行一个Java的节目,好久没有结束了。我猜可能是代码死循环了,但是看不到代码(无法修改)

如何判断是不是死循环?


面试题,我的答案是判断PC(program counter)是否在循环。但是面试官给了我提示use stack and heap of that program...

理论上,你不能。这就是停机问题。

实际上,您可以检查调用堆栈中的循环。 Java 一旦内存不足并转储堆栈跟踪就会崩溃。乏味,也许可能有用。

我认为你可以使用 try/catch 方法。

例如

尝试{

} 赶上(异常 e){ System.err.println("Infinte Loop Detcted: ");