美文网首页工作生活
并发基础之线程中断

并发基础之线程中断

作者: 孤独而无用 | 来源:发表于2019-07-02 20:46 被阅读0次

第一篇文章,讲一下线程中断的三个方法

  • void interrupt()方法是用来中断线程的;

  • boolean isInterrupted()方法是用来检测当前线程是否被终端,如果是返回true, 否则返回false;

  • boolean interrupted()方法 同上,但是如果发现当前线程被中断则会清除中断标志,该方法是static方法,可以通过类调用; 通过源码可知道在interrupted()内部是获取当前调用线程的中断标志而不是调用interrupted()方法的实例对象的中断标志

下面通过一段代码阐述:

Thread threadOne = new Thread(new Runnable() {
            @Override
            public void run() {
                for (;;);
            }
        });

        threadOne.start();
        threadOne.interrupt();

        System.out.println("isInterrupted:" + threadOne.isInterrupted());
        System.out.println("isInterrupted:" + threadOne.interrupted());
        System.out.println("isInterrupted:" + Thread.interrupted());
        System.out.println("isInterrupted:" + threadOne.isInterrupted());

得出结果如下:

isInterrupted:true
isInterrupted:false
isInterrupted:false
isInterrupted:true

这是为什么呢?
第一条是获取threadOne线程当前的中断标志;
第二条虽然调用了threadOne的interrupted()方法,但是获取的是主线程的也就是main thread的中断标志,因为主线程是当前线程;
第三条不用解释了,你懂的;
第四条也不用解释,threadOne的中断标志从来没被重置过,所以一直是true;

与君共勉...

相关文章

  • 并发基础之线程中断

    第一篇文章,讲一下线程中断的三个方法 void interrupt()方法是用来中断线程的; boolean is...

  • Java并发编程之线程篇之线程间通信(四)

    前言 在上篇文章Java并发编程之线程篇之线程中断(三)中我们讲解了线程中断的相关知识点,现在我们来了解一下线程间...

  • 并发

    并发 线程 Thread Runnable 中断线程 interrupt 调用该方法,线程的中断状态将被设置为tr...

  • Java 并发之线程中断

    一、前言 所谓线程中断,其实就是终止一个线程。在使用 Java 线程时,除了线程自行正常结束,很多时候也需要提前结...

  • Java并发之线程中断

    前面的几篇文章主要介绍了线程的一些最基本的概念,包括线程的间的冲突及其解决办法,以及线程间的协作机制。本篇主要来学...

  • 并发系列之线程中断

    曼彻斯特大学(英国)校训:“知识,睿智,人道。” 午夜时分,毫无睡意,要不聊聊线程中容易忽略的方面,即线程中断,这...

  • Java核心类库 —— 线程和并发

    java核心类库之-------线程和并发体系图 1.基础操作 1.1 并发与并行 1.2 进程和线程 1...

  • 年薪50W阿里P7架构师必备知识:并发+JVM+多线程+Nett

    并发编程 线程基础、线程之间的共享和协作一 线程基础、线程之间的共享和协作二 线程的并发工具类 线程的并发工具类、...

  • 多线程基础

    多线程基础总结 一、线程中断 interrupt方法用来请求终止线程。 1. interrupt置位中断标志位 当...

  • 互联网架构多线程并发编程高级教程(下)

    基础篇幅: 线程基础知识、并发安全性、JDK锁相关知识、线程间的通讯机制、 JDK提供的原子类、并发容器、线程池相...

网友评论

    本文标题:并发基础之线程中断

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