使用inInterrupted()
可以在Thread对象上调用inInterrupted()方法来检查任何线程的中断状态。
public boolean isInterrupted()
以上代码不会更改它的状态,如果线程被中断而且它的中断标志尚不清楚,则返回true。
public class InterruptCheck extends Object{
public static void main(String[] args){
Thread t = Thread.currentThread();//将t设为当前线程。
System.out.println("Point A: t.isInterrupted()=" + t.isInterrupted());
t.interrupt();
System.out.println("Point B: t.isInterrupted()=" + t.isInterrupted());
System.out.println("Point C: t.isInterrupted()=" + t.isInterrupted());
try{
Thread.sleep(2000);
System.out.println("was NOT interrupted");
}catch(InterruptedException e){
System.out.println("was interrupted");
}
System.out.println("Point D: t.isInterrupted()= " + t.isInterrupted());//最后显示为false,因为sleep()抛出异常时,它清楚了中断标志。
}
}
最近在看多线程中的终止线程,从中学习明白了try ..catch的大致用法。