当某个线程调用了interrupt()方法后,相当于给该线程打上了一个中断标志,interrupted()和isInterrupted()都可以用来检测线程的“中断标志”,但是,他们是有的区别的。
5S看结论:
this.interrupter()方法用来检测“当前线程”的中断状态,且会将中断状态标志清除。
this.isInterrupted()方法用来检测“this”的中断状态,且不会改变线程的状态标志。
解释:
interrupter()实际上是一个静态方法!
/*
实际上还是调用isInterrupted()方法,但是多了一个获取当前线程的操作
*/
public static boolean interrupted() {
return currentThread().isInterrupted(true);
}
isInterrupted()则是普通方法,哪个对象调用,就为哪个对象服务!
public boolean isInterrupted() {
return isInterrupted(false);
}