如何从java中的另一个线程立即杀死一个线程?

时间:2010-12-25 16:12:53

标签: java multithreading

无论如何都要杀死一个线程或立即中断它 就像在我的一个线程中一样,我调用一个需要时间执行的方法(2-4秒)。这个方法是一个while(布尔标志)块,所以我可以从主线程中断它。

但问题是,如果我打断它;它将等待执行循环结束,然后在下一次条件检查时,它将停止执行。

我希望它能够立即停止。反正有吗?

2 个答案:

答案 0 :(得分:4)

如果您需要提前停止线程,则需要在线程中添加更多断点。

你可以使用stop()立即设置它,但这需要付出代价并且有许多可能的不良副作用。您可以非常小心地安全地使用stop(),但实际上您会发现更简单/更容易/更安全地放入更多断点(检查线程是否应该停止的点)

BTW,如果你想抛出一个不会被打印的错误,你可以使用ThreadDeath,因为这样可以静默地关闭线程。

答案 1 :(得分:1)

不,我不相信有办法。你不想这样做是有原因的。

Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?