我是靠谱客的博主 清秀冬日,最近开发中收集的这篇文章主要介绍多线程 interrupt用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文涉及到的两个知识点

  1. interrupt() : 打断线程

如果被打断线程正在 sleep,wait,join 会导致被打断 的线程抛出 InterruptedException,并清除 打断标 记
;如果打断的正在运行的线程,则会设置 打断标 记 ;park 的线程被打断,也会设置 打断标记

  1. isInterrupted(): 判断当前线程是否被打断

会清除 打断标记

示例代码

public class interrupt用法 {

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            while (true) {
                boolean interrupted = Thread.currentThread().isInterrupted();
                if (interrupted){
                    System.out.println("被打断了, 退出循环");
                    break;
                }else {
                    System.out.println("沒有打断正常执行--");
                }
            }
        }, "t1");

        t1.start();
        Thread.sleep(100);

        System.out.println("开始interrupt");
        t1.interrupt();

    }
}

在这里插入图片描述
当线程睡眠完成后 Thread.sleep(100), 开始了interrupt打断线程, 随即在循环中执行方法isInterrupted(), 返回结果为true, 代表了该线程已经被打断了

最后

以上就是清秀冬日为你收集整理的多线程 interrupt用法的全部内容,希望文章能够帮你解决多线程 interrupt用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部