线程将在它的run方法返回时终止。在 JDK1.0中,还存在一个stop方法,其他线程可以调用它来终止线程。不过这个方法现在已经被弃用了。 尽管现在已经没有强制终止线程的方法了,但是你还是可以用interrupt方法来请求终止一个线程。
当sleep方法抛出一个InterruptedException异常时,它同时也会清除中断状态。 你会在很多发布的代码中发现InterruptedException异常被抑制在了一个很低的层次上,就像这样:
不要这样做!如果你不能很好地在catch字句中来处理异常,那么你还又两个合理的选择: 1)在catch字句中,调用Thread.currentThread().interrupt()来设置中断状态。然后调用者可以对其进行测试:
2)或者更好的方法,标记你的方法将抛出InterruptedException异常,让调用(或者,最终的run方法)就能够捕获该异常。
Powered by: BlogJava Copyright © love1563