【发布时间】:2011-05-30 16:00:02
【问题描述】:
无论如何要杀死一个线程或立即中断它。
就像在我的一个线程中一样,我调用了一个需要时间执行(2-4 秒)的方法。这个方法在一个 while(boolean flag) 块中,所以我可以从主线程中中断它。
但问题是,如果我打断它;它将等到执行循环完成,然后在下一次条件检查时,它将停止执行。
我希望它立即停止。有没有办法做到这一点?
【问题讨论】:
标签: java multithreading
无论如何要杀死一个线程或立即中断它。
就像在我的一个线程中一样,我调用了一个需要时间执行(2-4 秒)的方法。这个方法在一个 while(boolean flag) 块中,所以我可以从主线程中中断它。
但问题是,如果我打断它;它将等到执行循环完成,然后在下一次条件检查时,它将停止执行。
我希望它立即停止。有没有办法做到这一点?
【问题讨论】:
标签: java multithreading
如果您需要提前停止线程,则需要在线程中放置更多断点。
您可以使用 stop() 立即阻止它,但这是有代价的,并且有许多可能的不良副作用。您可以非常小心地安全地使用 stop(),但实际上您会发现放置更多断点(检查线程是否应该停止的点)更简单/更容易/更安全
顺便说一句,如果你想抛出一个不会被打印的错误,你可以使用 ThreadDeath,因为这可以静默关闭线程。
【讨论】:
不,我不相信有办法。你不想这样做是有原因的。
Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?
【讨论】: