在调用interrupt 方法后, sleep 方法抛出异常,然后 输出错误信息:sleep
interrupted.
注意:在Thread 类中有两个方法可以判断 线程是否通 过interrupt 方法被 终止。一
个是静 态的方法 interrupted (),一个是非静态的方法 isInterrupted (),这两个方
法的区 别是interrupted 用来判断当前 线是否被中断,而isInterrupted 可以用来判
断其他 线程是否被中断。因此,while (!isInterrupted ())也可以换成while
(!Thread.interrupted ())。
如何停止 JAVA 线 程
如何停止 java的线程一直是一个困 恼我们开发多线程程序的一个 问题。这个问题 最终在Java5 的java.u
til.concurrent 中得到了回答:使用 interrupt() ,让线 程在run 方法中停止。
简介
在Java的多线程编程中,java.lang.Thread 类型包含了一些列的方法 start() , stop() , stop(Throwable) a
nd suspend() , destroy() and resume() 。通过这些方法,我们可以对线 程进行方便的操作,但是 这些方
法中,只有start() 方法得到了保留。
在Sun公司的一篇文章《 Why are Thread.stop, Thread.suspend and Thread.resume
Deprecated? 》中详细讲 解了舍弃 这些方法的原因。那么,我 们究竟应该 如何停止 线程呢?
建议使用的方法
在《Why are Thread.stop, Thread.suspend and Thread.resume
Deprecated? 》中,建议使用如下的方法来停止 线程:
private volatile Thread blinker;
public void stop() {
blinker = null ;
}
public void run() {
Thread thisThread = Thread.currentThread();
while (blinker == thisThread) {