朴实的聊聊很多人会误解/不懂的Java并发中断机制
manongba · 129浏览量 · 发布于2020-05-20 +关注

本来是要介绍 AQS 作为我们走进并发编程源码环节的第一步,但 AQS 涉及的知识点也还真有点多,每一个都够单独拿出来说一说,恰巧有朋友私信我“不理解线程的中断机制”,中断机制又恰巧是 AQS API实现的一部分,更贯穿于整个并发编程内容中。于是就打算单独说一说这个小机制,先让大家做到心中有 number

在学习/编写并发程序时,总会听到/看到如下词汇:

  • 线程被中断或抛出InterruptedException

  • 设置了中断标识

  • 清空了中断标识

  • 判断线程是否被中断

在 Java Thread 类又提供了长相酷似,让人傻傻分不清的三个方法来处理并发中断问题:

  • interrupt()

  • interrupted()

  • isInterrupted()

看到这我不禁会问自己:

什么是中断机制?

刚刚接触【中断】这个词时,先入为主的概念就是“直接中断/打断”正在做的事,使其停止。我的理解是这样的:

你:在打游戏

女朋友:别打游戏了,赶快过来吃饭

你:听到女朋友招呼之后立马中断手中的游戏乖乖过去吃饭

在多线程编程中,中断是一种【协同】机制,怎么理解这么高大上的词呢?就是女朋友叫你吃饭,你收到了中断游戏通知,但是否马上放下手中的游戏去吃饭看你心情 。在程序中怎样演绎这个心情就看具体的业务逻辑了,Java 的中断机制就是这么简单

如果还没改变这个先入为主的概念,我怀你你没有女朋友(

相关推荐

PHP实现部分字符隐藏

· 289浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 245浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 277浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 245浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 207浏览 · 2019-05-14 22:20:36
加载中

0评论

评论