我们研究对象有3个
1.thread.isInterrupted():判断是否有中断标志
2.thread.interrupt() : 添加中断标志
3.Thread.interrupted() 判断是否有中断标志
thread是实例对象,Thread是类名称说明Thread.interrupted()是静态方法
thread.isInterrupted() 和 Thread.interrupted()作用类似,重点研究它们两个
它们的源码
public static boolean interrupted() {
return currentThread().isInterrupted(true);
}
public boolean isInterrupted() {
return isInterrupted(false);
}
它们底层都是调用private native boolean isInterrupted(boolean ClearInterrupted); 方法只是传入的参数不同
1.源码中true的意思是执行完清除状态,即当中断标志为true表示中断,执行完Thread.interrupted()方法后,中断标志为false
2.源码中false的意思是执行完不清除状态,即当中断标志为true表示中断,执行完thread.interrupt()方法后,中断标志仍然为true
使用isInterrupted() 和 interrupt() 如何可控中断线程可以看我 另一篇博文