朴实的聊聊很多人会误解/不懂的Java并发中断机制
manongba · 524浏览 · 发布于2020-05-20
本来是要介绍 AQS 作为我们走进并发编程源码环节的第一步,但 AQS 涉及的知识点也还真有点多,每一个都够单独拿出来说一说,恰巧有朋友私信我“不理解线程的中断机制”,中断机制又恰巧是 AQS API实现的一部分,更贯穿于整个并发编程内容中。于是就打算单独说一说这个小机制,先让大家做到心中有 number
在学习/编写并发程序时,总会听到/看到如下词汇:
线程被中断或抛出InterruptedException
设置了中断标识
清空了中断标识
判断线程是否被中断
在 Java Thread 类又提供了长相酷似,让人傻傻分不清的三个方法来处理并发中断问题:
interrupt()
interrupted()
isInterrupted()
看到这我不禁会问自己:
什么是中断机制?
刚刚接触【中断】这个词时,先入为主的概念就是“直接中断/打断”正在做的事,使其停止。我的理解是这样的:
你:在打游戏
女朋友:别打游戏了,赶快过来吃饭
你:听到女朋友招呼之后立马中断手中的游戏乖乖过去吃饭
在多线程编程中,中断是一种【协同】机制,怎么理解这么高大上的词呢?就是女朋友叫你吃饭,你收到了中断游戏通知,但是否马上放下手中的游戏去吃饭看你心情 。在程序中怎样演绎这个心情就看具体的业务逻辑了,Java 的中断机制就是这么简单
如果还没改变这个先入为主的概念,我怀你你没有女朋友(
相关推荐
PHP实现部分字符隐藏
沙雕mars · 1312浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别
kenrry1992 · 896浏览 · 2019-05-08 21:14:54
5月语言排行榜:R 跌出前二十,Python 紧咬 C++
manongba · 676浏览 · 2019-05-09 17:27:24
Tomcat 下载及安装配置
manongba · 957浏览 · 2019-05-13 21:03:56
什么是SpringBoot
iamitnan · 1077浏览 · 2019-05-14 22:20:36
分类专栏
最新发布
最热排行
0评论