我怎样才能立即终止一个线程?(不中断)

tix*_*opi 7 java multithreading

这不是关于如何干净地终止线程的问题,即通过调用线程上的中断并使线程适当地响应.我无法以任何方式修改线程正在执行的代码.

我特意想立即终止一个Thread,我根本不关心状态是什么.我知道使用Thread.stop可能有类似的东西,但是这实际上抛出了一个ThreadDeath异常,并且让Thread终止了这个异常不能被抓住.但是我正在处理的代码捕获了这个异常并且没有重新抛出它.

Thread.destroy()似乎是我正在寻找的,但是这个方法从未实现过.有没有其他方法来实现这一目标?

Ted*_*opp 5

我相信在 Java 中没有办法像你描述的那样杀死一个线程。正如您在评论中指出的那样,interrupt不会做您想做的事。如果线程正在执行,它只是设置一个标志,由线程来通知它。如果线程正在等待或睡眠,它将抛出一个InterruptedException.

我可以想象做你所描述的事情的唯一方法是杀死线程正在运行的进程。(例如,调用System.exit(int)。)