线程方法 isInterrupted

文章通过示例代码展示了Java中的Thread.isInterrupted()方法用于检查线程是否被中断,该方法不改变中断标识状态。在代码中创建了一个无限循环的线程,并在主线程中调用中断方法,演示了如何检测中断状态。注意,使用sleep()方法会捕获中断信号,影响结果演示。
摘要由CSDN通过智能技术生成

isInterrupted是Thread的一个成员方法,它主要判断当前线程是否被中断 。该方法仅仅是对interrupt标识的一个判断,并不会影响标识发生任何改变


public class ThreadisInterrupted {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            while (true) {
            //do nothing, just empty loop.
            }
        });
        thread.start();

        TimeUnit.MILLISECONDS.sleep(2);

        System.out.printf("Thread is interrupted ? %s\n", thread.isInterrupted());
        thread.interrupt();
        System.out.printf("Thread is interrupted ? %s\n", thread.isInterrupted());
    }
}

// Thread is interrupted ? false
// Thread is interrupted ? true

上面的代码中定义了一个线程,并且在线程的执行单元中(run方法)写了一个空的死循环,记得手动结束上面的程序运行,或者你也可以将上面定义的线程指定为守护线程,这样就会随着主线程的结束导致JVM中没有非守护线程而自动退出。

[Q&A] 为什么不写sleep呢?
因为sleep是可中断方法,会捕获到中断信号,从而干扰我们程序的结果。

-----------------------------------------------------------------------------读书笔记摘自书名:Java高并发编程详解:多线程与架构设计 作者:汪文君

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值