中断线程小demo
作者:互联网
private static void test2() throws InterruptedException {
Thread thread=new Thread(()->{
while (true){
//中断信号 isInterrupted是不会被清除
3. if (Thread.currentThread().isInterrupted()) {
System.out.print("线程被中断");
return;
}
try {
//sleep会中断清除中断信号 isInterrupted也不行
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.print("线程被中断程序退出");
Thread.currentThread().interrupt();
}
}
});
thread.start();
//休眠2秒
1. thread.sleep(2000);
//设置中断
2. thread.interrupt();
}
总结:
1.设置线程休眠 2秒
2.设置线程中断
3.没有调用 isInterrupted或者 interrupted方法 线程是不会中断的
4.如果调用了isInterrupted之后正常中断
5.sleep方法会清除中断标记 如果再执行中断信号之后又有一个sleep则还是会继续执行 执行到catch代码块之后跳出循环
6.在catch代码块中又手动中断了一次 这次再执行到3的位置就正常中断了
标签:thread,Thread,中断,demo,isInterrupted,线程,sleep 来源: https://blog.csdn.net/weixin_43848065/article/details/121892130