其他分享
首页 > 其他分享> > 中断线程小demo

中断线程小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