interrupt when sleep
public class Test {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(){
@Override
public void run() {
while(true){
if(Thread.currentThread().isInterrupted()){
System.out.println("interrupt");
break;
}
try {
Thread.sleep(1000);//breakpoint
} catch (InterruptedException e) {
System.out.println("interrupt when sleep");
Thread.currentThread().interrupt();
}
Thread.yield();
}
}
};
t1.start();
Thread.sleep(1000);//breakpoint
t1.interrupt();
}
}
debugger

重点:
1.线程睡眠(sleep)时,会丢失中断(interrupt)标志
2.中断线程interrupt,只是对thread设置中断标志,并不会结束线程
3.interrupt不会释放监视器(锁)