如何在Java(C和NodeJS)中(true){}时停止/隔离

如何在Java(C和NodeJS)中(true){}时停止/隔离,java,c#,node.js,Java,C#,Node.js,假设我有一些代码,因为一个bug有时会这样做 while(true){/*...*/} 我没有第三部分库的源代码 在Java中,我可以在将来完全隔离它。但由于第三方代码不合作,超时在将来将不起作用。停止自定义线程池也不起作用。我用“while true…”这句话来测试它 Java的Thread.stop已被弃用,但或多或少可以正常工作 在Java中,我应该如何在一段时间后停止这种从不返回非合作代码的行为?我应该使用流程吗 对于C和NodeJ,同样的问题。在C上下文中,您有Thread.Abor

假设我有一些代码,因为一个bug有时会这样做

while(true){/*...*/}
我没有第三部分库的源代码

在Java中,我可以在将来完全隔离它。但由于第三方代码不合作,超时在将来将不起作用。停止自定义线程池也不起作用。我用“while true…”这句话来测试它

Java的Thread.stop已被弃用,但或多或少可以正常工作

在Java中,我应该如何在一段时间后停止这种从不返回非合作代码的行为?我应该使用流程吗

对于C和NodeJ,同样的问题。

在C上下文中,您有Thread.Abort,它将尝试拦截每个托管代码执行步骤并停止线程执行。尽管如此,不建议使用此选项,因为它可能会导致线程在被终止时处于损坏状态、非托管资源挂起和其他不需要的行为


更好的办法是将此第三方代码的执行限制在不同的进程中,并在提供的超时时间结束进程。这会导致更大的性能损失,但您不会有任何资源或锁挂起的风险。

使用流程似乎是最合理的。外部代码对线程中断有反应吗?当线程调用sleep或处于阻塞状态时,这将引发interrup异常。这是一个臭名昭著的whiletrue。。不确定为什么这仍然出现在C中的生产代码中,您可以尝试在应用程序域中隔离它。