美文网首页
interrupt()深入理解

interrupt()深入理解

作者: enjoycc97 | 来源:发表于2019-06-27 17:29 被阅读0次

线程中断的理解
例子一
线程调用interrupt()线程会中止吗?

 for(int i=0;i<1000;i++){
            if(i==10){
                Thread.currentThread().stop();
            }
            System.out.println(i);
        }

结果是打印0-9,因为到10线程stop停止了

 for(int i=0;i<1000;i++){
            if(i==10){
                Thread.currentThread().interrupt();
            }
            System.out.println(i);
        }

线程打印0-1000,interrupt不会导致循环停止

分析一下interrupt()是设置线程的中断状态
例如Thread.sleep()是要强制捕捉interrupt异常的
可以试一下

Thread test = new Thread() {
            @Override
            public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
        };
        test.start();
        test.interrupt();

sleep是会触发异常的
总结interrupt()是设置中断标志,线程可以判断Thread,isInterrupted()判断线程已经中断,但是直接调用此方法线程仍然继续运行

相关文章

  • interrupt()深入理解

    线程中断的理解例子一线程调用interrupt()线程会中止吗? 结果是打印0-9,因为到10线程stop停止了 ...

  • 结合interrupt state来理解interrupt

    [TOC] Thread类的interrupt方法倒是见过好几次,但是一直不知道他的具体是干什么的,今天查了以下a...

  • 深入挖掘Thread.interrupt

    如果想中断一个线程或者停止,通常使用interrupt操作,但是这个函数有什么用。中止一个线程?如果线程正在运行,...

  • Thread.interrupt()的理解

    目标 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。Thread.interrupt 的作...

  • 5、RedLock的实现

    你需要先理解中断是什么:线程的interrupt()方法[https://blog.csdn.net/zengmi...

  • sonar提示修复

    Either re-interrupt this method or rethrow the "Interrupt...

  • 线程中止的方法

    使用interrupt,千万不要使用stop,会破坏程序原子性,interrupt使用interrupt不仅不会破...

  • 如何停止线程?

    interrupt ( ) 原理介绍: public void interrupt()Interrupts thi...

  • Java线程的中断与休眠

    本文分析Thread类分别用于中断与休眠的interrupt和sleep方法,在深入它们之前先看辅助类Platfo...

  • 多线程之理解Interrupt

    在学习多线程时,多多少少会看一些源码,其中interrupt经常出现,于是看了很多博客学习了一下interrupt...

网友评论

      本文标题:interrupt()深入理解

      本文链接:https://www.haomeiwen.com/subject/dryrcctx.html