JAVA多线程中设置了interrupt之后用isInterrupted检查状态是false
public class Run3 {
public static void main(String[] args) {
try {
Thread5 thread5 = new Thread5();
thread5.start();
Thread5.sleep(1000);
thread5.interrupt();
//当前线程是main
System.out.println("当前线程是:"+Thread.currentThread().getName());
//这个为什么是false
System.out.println("是否停止3? ="+thread5.isInterrupted());
//虽然是Thread5.interrupted(),但是interrupted()是当前线程的状态,与谁来调用它没有关系
System.out.println("是否停止1? ="+Thread5.interrupted());
System.out.println("是否停止2? ="+Thread5.interrupted());
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
System.out.println("main catch");
e.printStackTrace();
}
}
}
class Thread5 extends Thread{
@Override
public void run(){
super.run();
for(int i =1; i<=50000; i++){
System.out.println("i= "+i);
}
}
}
运行之后结果如下图:
i= 49991
i= 49992
i= 49993
i= 49994
i= 49995
i= 49996
i= 49997
i= 49998
i= 49999
i= 50000
当前线程是:main
是否停止3? =false
是否停止1? =false
是否停止2? =false