线程方法 interrupt

news/2025/3/15 4:35:43/

interrupt

如下方法的调用会使得当前线程进入阻塞状态,而调用当前线程的interrupt方法,就可以打断阻塞
·Object的wait方法。
·Object的wait(long)方法。
·Object的wait(long,int)方法。
·Thread的sleep(long)方法。
·Thread的sleep(long,int)方法。
·Thread的join方法。
·Thread的join(long)方法。
·Thread的join(long,int)方法。
·InterruptibleChannel的io操作。
·Selector的wakeup方法。
·其他方法。
上述若干方法都会使得当前线程进入阻塞状态,若另外的一个线程调用被阻塞线程的interrupt方法,则会打断这种阻塞,因此这种方法有时会被称为 可中断方法 ,记住,打断一个线程并不等于该线程的生命周期结束,仅仅是打断了当前线程的阻塞状态。
一旦线程在阻塞的情况下被打断,都会抛出一个称为InterruptedException的异常,这个异常就像一个signal(信号)一样通知当前线程被打断了
interrupt这个方法到底做了什么样的事情呢? 在一个线程内部存在着名为interrupt flag的标识,如果一个线程被interrupt,那么它的flag将被设置,但是如果当前线程正在执行可中断方法被阻塞时,调用interrupt方法将其中断,反而会导致flag被清除.
另外有一点需要注意的是,如果一个线程已经是死亡状态,那么尝试对其的interrupt会直接被忽略。
public class ThreadInterrupt {public static void main(String[] args) throws InterruptedException {Thread thread = new Thread(() -> {try {TimeUnit.MINUTES.sleep(1);} catch (InterruptedException e) {System.out.println("Oh, i am be interrupted.");}});thread.start();//short block and make sure thread is started.TimeUnit.MILLISECONDS.sleep(2);thread.interrupt();}
}
Oh, i am be interrupted.

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


http://www.ppmy.cn/news/115807.html

相关文章

中文完整版FL Studio21永久免费升级

集合最新FL基础操作、编曲技巧、混音技巧、乐理基础、声乐演奏等各类内容,比如更高端版本才有的必备原厂插件Pitcher和Sakura,还有智能编曲插件ORB,编曲软件FL Studio21版本更新现已发布,在这次更新中优化了很多功能,但…

【录用案例】1区SCI仅1个月14天录用,新增19篇录用、5篇见刊、6篇检索

2023年5月20日-2023年5月26日,经核实,由我处Unionpub学术推荐的19篇论文已被期刊部录用、5篇见刊、6篇检索: 2区肿瘤类SCI 【期刊简介】IF:4.5-5.0,JCR2区,中科院2区 【检索情况】SCI 在检,正刊 【征稿…

2023年了,你还以为高性能计算是一个小众、冷门、就业面窄的就业方向吗?

有人声称高性能计算是一个小众领域,就业面窄,甚至冷门。 曾经的HPC高性能计算的确如此,冷门、偏门、入行较难。 但随着深度学习的崛起,AIGC的来临,国家又重新定调了超算互联网时代。 曾经被时代蒙尘的高性能计算又重…

算法怎么算:二分为什么是闪电?

引言 在基础查询算法中有一个是不能避开的点:二分查找。 接触算法的同学翻开书的前几节,大概率是桶排序、冒泡、快排、然后就是经典的二分查找。 一开始接触的话不容易从理论中联系到生产实际上,查找,这个最基本的事情&#xf…

4.1 Spark SQL概述、数据帧与数据集

一、数据帧 - DataFrame (一)准备工作 1、准备数据文件 2、启动Spark Shell (二)加载数据为Dataset 1、读文件得数据集 2、显示数据集内容 3、显示数据集模式 (三)给数据集添加元数据信息 1、定…

拯救者Y7000P 2020H款安装deepin20.5后资源空闲时经常出现风扇狂转现象

拯救者Y7000P 2020H款安装deepin20.5后资源空闲时经常出现风扇狂转现象 记录下来备忘,不要再踩坑了!

【华为OD机试真题2023B卷 JAVAJS】数大雁

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 数大雁 知识点字符串 时间限制:1s 空间限制:32MB 限定语言:不限 题目描述: 一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。具体的: 1. 大雁发出的完整叫声为"quac…

oracle中建立job定期运行存储过程 参数

Plsql developer dbms schedual job里面编辑也可以 手动方式: 1 首先查看 SQL> show parameter job NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_pro…