彻底搞懂interrupt(),isInterrupted(),interrupted()

20 篇文章 0 订阅
订阅专栏

  1.interrupt()表示打断一个线程.

        interrupt(): 如果被打断线程正在 sleep wait join 会导致被打断 的线程抛出 InterruptedException ,并清除 打断标 记,打断标记为false ;如果打断的正常运行的线程,则会设置 打断标 记 为true
      1.1当打断sleep的线程:
 public static void main(String[] args) {
        Object object = new Object();
        Thread thread = new Thread(() -> {
            try {
                sleep(5000);
                System.out.println("你好55555");
            } catch (InterruptedException e) {
                e.printStackTrace();

            }
            System.out.println("小明:可以干活了");

        });
        thread.start();
        thread.interrupt();

    }
  1.2当打断正常执行的线程不会报错,会正常执行.
    public static void main(String[] args) {
        Object object = new Object();
        Thread thread = new Thread(() -> {
//            try {
//               sleep(5000);
//               System.out.println("你好55555");
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//
//            }
            while (true) {
                System.out.println("小明:可以干活了");
            }
        });
        thread.start();
        thread.interrupt();
    }

  2.isInterrupted()和interrupted() 都是判断线程是否被打断.可以根据判断打断标记决定是否结束当前线程.

         isInterrupted()判断之后不会清除打断标记,打断标记不变

         interrupted() 判断之后会清除打断标记,将打断标记改为false

     

 

线程的中断协商机制interrupt()、isInterrupted()、interrupted()
小白的博客
08-24 282
一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的协商机制——中断。中断只是一种协作协商机制,Java没有给中断增加任何语法,中断的过程完全需要程序员自己实现。...
简述Thread的interrupt()、interrupted()及isInterrupted()的区别
Huangjiazhen711的博客
10-26 486
在java Thread类中,我们会看到interrupt()、interrupted()及isInterrupted(),在大多数情况下,我们都不会使用到它们,但是有一个try {}}那么你知道异常是如何触发的嘛?
关于interrupt(),interrupted(),isInterrupted()用法分析
卓越无关环境,保持空杯心态——靡不有初,鲜克有终
07-19 9628
我想代码是非常容易解释这个问题的了。下文会给出总结。 总结点击这里或者往下阅读: 直接来一段小代码吧: public class Interrupt { public static void main(String[] args) { Thread t = new Thread(new Worker()); t.start(); t...
isInterruptedinterruptinterrupted
zcx的博客
11-19 826
由易到难开始介绍吧 isInterrupted 最容易理解的,查看线程是否被打断,没有副作用。可以自己询问自己,也可以在A线程中询问B线程。 Thread A = new Thread(() -> { //自己询问自己 Thread.currentThread().isInterrupted(); },"A"); A.start(); Thread B = new Thread(() -&gt
interrupt、isinterruptinterrupted的理解和使用
EASYGOOO的专栏
07-29 3690
在java的线程Thread类中有三个方法,比较容易混淆,在这里解释一下 (1)interrupt:置线程的中断状态 (2)isInterrupt:线程是否中断 (3)interrupted:返回线程的上次的中断状态,并清除中断状态 举个例子: class MyThread extends Thread {       ......       ......
interrupted、isInterrupted
venus321的博客
01-24 240
对于线程来说,动起来不是什么问题,但是如何让它停下来,就需要一些处理。 虽然stop、suspend、resume都可以使线程停下来,但是官方是不建议的,现在已经废弃了。 interrupt方法仅仅只是打了一个停止标记。 判断线程是否停止状态 interrupt isInterrupted public class Test148 { public static ...
isInterruptedinterrupted的区别
qq_45110312的博客
05-28 1377
133
多线程细讲-3:轻松理解interrupt(),interrupted(),isInterrupted()方法的作用
m0_72467092的博客
11-05 1160
说到线程的中断,一定离不开三个 方法 interrupt() , interrupted() , isInterrupted() , 本文从源代码入手就能很好地理解这三个方法
interrupted()和isInterrupted()详述,【吐血整理】
m0_63102527的博客
11-19 1310
/** 线程是否被中断native方法,ClearInterrupted为是否清除中断标志参数 */ private native boolean isInterrupted(boolean ClearInterrupted); /** 中断当前线程的native方法 */ private native void interrupt0(); ​ interrupted()和isInterrupted()区别 看了上述API讲述和Thread中的源码,已经清楚interrupted()和isInter
Thread类的interrupt(),interrupted(),isInterrupted()1
08-08
在Java多线程编程中,理解`Thread`类中的`interrupt()`、`interrupted()`和`isInterrupted()`方法至关重要,因为它们与线程中断机制紧密相关。线程中断是Java提供的一种协作式中断机制,它并不强制结束线程,而是...
java线程中的interrupt,isInterrupt,interrupted方法
Xiao_Qiang_的专栏
12-29 737
在java的线程Thread类中有三个方法,比较容易混淆,在这里解释一下 (1)interrupt:置线程的中断状态 (2)isInterrupt:线程是否中断 (3)interrupted:返回线程的上次的中断状态,并清除中断状态 举个例子: view plain 用法:  class MyThread extends Thread {      ......
线程中断interrupt(),isInterrupted(),interrupted()
qq_37555579的博客
08-14 390
线程中断interrupt(),isInterrupted(),interrupted()
interrupted和isInterrupted
hq.zheng的博客
06-12 227
一.在java的SDK 中,Thread.java类提供了两种判断线程是否是停止状态的方法:1)this.interrupted():测试当前线程是否已经中断。2)this.isInterrupted():测试线程是否已经中断。二.1)案例一:.interrupted()package org.zhq.test; /** * @author 作者 hq.zheng: * @version 创建...
interrupt()、interrupted()、isInterrupted()区别?
xingcsdnboke的博客
08-29 126
3、Thread.currentThread().isInterrupted() 线程实例方法,仅返回中断标志。2、Thread.interrupted() 线程静态方法,返回中断标志且清除(恢复)中断标志。1、interrupt() 线程实例方法,通知线程中断。
java suppend_从头认识多线程-1.5 interrupt()和isInterrupt()
weixin_32384723的博客
03-06 94
这一章节我们来讨论一下线程的停止,由于线程的停止方法stop,suppend,resume已经弃用,因此不推荐,现在只能够使用interrupt,但是这个方法只是标记一下这个线程已经停止,没有实质性的停下来的。1.代码清单package com.ray.deepintothread.ch01.topic_5;public class InterruptSample {public static v...
线程中断:interruptinterrupted、isInterrupted
最新发布
今天没有努力
03-07 420
interrupt方法用于中断某一线程interrupted方法返回当前线程的中断状态,然后清除中断状态isInterrupted方法返回当前线程的中断状态当中断一个在阻塞状态的线程,则该线程会响应此中断,会抛出异常并清除中断状态线程执行完后即(TERMINATED)状态,调用检测中断状态的方法总是返回false。
interrupt(),interrupted() 和 isInterrupted() 的区别
weixin_34341229的博客
11-30 603
1. 结论先行 interrupt():将调用该方法的对象所表示的线程标记一个停止标记,并不是真的停止该线程。interrupted():获取当前线程的中断状态,并且会清除线程的状态标记。是一个是静态方法。 isInterrupted():获取调用该方法的对象所表示的线程,不会清除线程的状态标记。是一个实例方法。 现在对各方法逐一进行具...
interrupt()、interrupted()、isInterrupted()区别
kongkong的专栏
06-05 298
# 线程中断方法 interrupt() # interrupt()方法中断后 第一次调用interrupted(),返回true # 之后调用interrupted()返回false,除非线程重新中断 interrupted() # interrupt()调用后,isInterrupted()返回true isInterrupted() demo1 # demo1 public static void main(String[] args) throws Exception{...
关于interrupt,isInterruptedinterrupted()方法
qq_39839075的博客
05-06 247
标题所说的三个方法都是Thread类的方法。 均和线程停止有关。jdk早期,停止线程的API是stop方法,由于不安全的因素,jdk1.2开始废弃了该方法,目前该方法已经打上了@Deprecated注解,代表过时 jdk1.2之后,停止一个线程的方式是:Thread类的interrupt方法。 我先介绍一下两个概念: 当前线程 此线程 当前线程:执行interuptTest方法的main方法所...
Java多线程中断机制:stop、interrupted与isInterrupted解析
总结,Java多线程中断机制的核心在于`interrupt()`方法,通过设置中断标志并配合`isInterrupted()`或`interrupted()`检查,实现线程的安全退出。避免使用`stop()`方法,因为它可能会导致不可预测的副作用。正确使用...
写文章

热门文章

  • synchronized和volatile对比 1730
  • Java的实参值如何传入方法呢? 1614
  • MP之insert()和insertAllColumn()方法 1046
  • 彻底搞懂interrupt(),isInterrupted(),interrupted() 1007
  • 排序算法的稳定性 953

分类专栏

  • 笔记 20篇
  • jvm 6篇

大家在看

  • 毕业设计-基于SpringBoot与Vue实现的智能停车场系统
  • 表格制作实训 149
  • C++学习路线(二十一)
  • Mysql的日志体系以及事务特性
  • Java Spring的常用注解详解和案例示范 468

最新文章

  • 每日一问:集合元素如何保证不变性
  • 变量的线程安全分析
  • 什么是守护线程?
2022年8篇
2021年20篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家鹤壁玻璃钢彩绘雕塑厂家电话景洪市玻璃钢雕塑厂家福建水果玻璃钢雕塑销售厂家天津玻璃钢卡通水果雕塑浙江中庭商场美陈供应商鼓楼商场新年美陈湖南景观玻璃钢雕塑图片玻璃钢花盆制作方法惠州市需要做玻璃钢雕塑的厂房汕尾玻璃钢雕塑手工制作常州春季商场美陈凯里玻璃钢雕塑公司云南动物玻璃钢雕塑制作商场悬挂设计美陈杞县玻璃钢雕塑义乌玻璃钢雕塑厂商定制德州佛像玻璃钢仿铜雕塑香洲商场美陈玻璃钢雕塑十二生肖定制佛山红色玻璃钢卡通雕塑石家庄人物雕像玻璃钢雕塑玻璃钢民俗雕塑设计哪里有西藏玻璃钢卡通雕塑制作生产玻璃钢花盆富阳商场开业美陈安庆大型玻璃钢雕塑建邺美陈商场布置广东玻璃钢动物造型雕塑2016香港商场圣诞美陈深圳坪地镇玻璃钢雕塑厂招聘香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化