`

java InterruptedException 的价值

    博客分类:
  • java
阅读更多
这里谈java 中的InterruptedException ,主要对如下让人迷惑的问题进行探讨:
1: 什么情况下出现InterruptedException 这个异常
2: 出现这个异常有什么的目的

InterruptedException 是个检查异常,在出现Thread.sleep() 和 Object.wait() 这类方法时候,编译器会要求捕捉并处理。Tread.sleep(),Object.wait() 这些都是阻塞方法,使当前线程阻塞等待外部事件(时间片,锁等),暂且把此阻塞线程名为Thread1;  那么现在有另外一个线程Thread2  请求退出程序了,毕竟最好的方法就是要通知一下那些阻塞的线程,让他们进行自我未完成的东西处理一下,Thread2这时候会使用 Thread.interrupt() 中断Thread1这个线程时 ,这时候 Thread1中就会出现 InterruptedException 异常。其实这种异常就是一种友善的通知,至于怎么处理就看实际业务情况了和代码设计结构了。这个异常也是 可以取消阻塞这种功能产生的结果,所谓可取消阻塞也就是说不一定等阻塞完毕后才能往下执行,完全可以通过外力取消阻塞。

当一个线程中断另一个线程时,被中断的线程不一定要立即停止正在做的事情。如果那个线程在执行一个低级可中断阻塞方法,例如Thread.sleep() ,Object.wait(),那么它将取消阻塞并抛出 InterruptedException,这个时候需要程序员处理了,或者不管它可以继续再做一个阻塞,或者别的善后工作;但是还有别的线程无法被中断,可能优先级别很高等,这个时候被中断的线程依然可以通过Thread.isInterrupted()来读取是否有别人请求中断过本线程,并且可以通过一个名为 Thread.interrupted()的操作读取和清除这个isInterrupted 的状态。


  
分享到:
评论

相关推荐

    JAVA API1.5中文帮助文档

    这份文档不仅适用于初学者,也对有经验的Java开发者具有极高的参考价值。通过深入阅读和理解这些内容,开发者可以有效地提升编程效率,解决实际开发中遇到的问题。 Java API 1.5,也被称为Java SE 5.0,引入了许多...

    java批量下载可以看看

    这个话题对初学者和有经验的开发者都有价值,因为Java提供了强大的工具和库来实现这一功能。下面将详细介绍如何使用Java进行批量下载,以及涉及到的相关技术。 首先,我们需要理解Java的基础,它是面向对象的编程...

    Java教材-applet动画实现

    ### Java教材-applet动画实现 #### 一、Java中绘制图形动画及双缓冲技术 Java是一种广泛应用于Web应用开发的编程语言,...然而,对于学习Java图形编程和理解基本的动画原理而言,上述方法仍然具有重要的参考价值。

    Master concurrency programming java 9 2nd.pdf

    ### 并发编程掌握指南:Java 9 第二版 #### 核心知识点解析 **并发编程概述** 并发编程是一种编程方法,它允许程序在执行...对于希望利用现代多核硬件优势的开发者来说,深入学习Java 9的并发特性是非常有价值的。

    java qqWry.dat多个IP同时查询代码

    在IT行业中,网络通信是不可或缺的一部分,而IP地址作为网络通信的基础,经常需要进行解析和查询。本主题聚焦于使用Java编程语言...这涉及到了文件读取、二进制解析、并发编程等多个Java核心技术,具有较高的实用价值。

    Java并发编程之美_部分81

    在Java中,TimerTask是一个常用的定时器组件,但是它有一个致命的缺陷,那就是当任务在执行过程中抛出InterruptedException之外的异常时,唯一的消费线程就会因为抛出异常而终止,那么队列里的其他待执行的任务就会...

    JAVA实验字符串的滚动

    ### JAVA实验:实现字符串滚动效果 #### 背景与目标 在本实验中,我们将通过编写一个Applet程序来实现一个简单的字符串滚动效果。该程序的主要功能是展示一段文本...这对于开发更复杂的用户界面具有重要的参考价值。

    《Java 8编程参考官方教程 第9版》PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于Java 8编程的官方教程,并...此外,《Java 8编程参考官方教程 第9版》这本书将深入讲解这些特性和其他更多内容,对于希望深入了解Java 8的读者来说是非常有价值的资源。

    用Java实现网络爬虫(或互联网蜘蛛)

    在IT领域,网络爬虫(也称为互联网蜘蛛)是...而关于搜索引擎原理,它涉及到信息检索、网页排名算法(如PageRank)、索引构建等多个复杂的主题,这里不再详述,但它们是网络爬虫最终目标——提供有价值搜索结果的核心。

    最全的JAVA面试题.txt

    根据提供的文件信息,我们可以整理出以下关键的Java...以上内容涵盖了Java面试中常见的知识点,包括异常处理、字符串特性、线程同步、设计模式、集合框架等多个方面,对于准备面试的开发者来说是非常有价值的复习资料。

    2011最新华为JAVA面试笔试题

    从给定的文件标题、描述、标签以及部分内容中,我们...以上知识点涵盖了Java语言的基础特性、多线程处理、内存管理、面向对象设计等多个方面,对于准备华为或其他公司IT岗位面试的人员来说,具有重要的学习和参考价值。

    自动关机代码包_JAVA自动关系包_

    本压缩包“自动关机代码包_JAVA自动关机包_”提供了一个使用Java实现电脑定时自动关机的实例,这对于初学者理解Java编程以及系统控制的概念具有很好的学习价值。 在Java编程中,实现自动关机功能主要涉及操作系统...

    java常见的异常

    在Java编程语言中,异常是程序运行时...通过良好的异常处理策略,不仅可以使程序更加健壮,还能提供有价值的错误信息,帮助快速定位和解决问题。在实际开发中,结合日志记录和调试工具,可以更有效地追踪和修复异常。

    java飞信接口(移动服务器)

    - **异常处理**:在`login`和`getToUserid`方法中,可以看到对`IOException`和`InterruptedException`的捕获。这表明在与服务器交互时,网络问题和线程中断是可能发生的,因此应有适当的错误处理机制。 - **线程...

    Java多线程并发技术的实现.pdf

    对于初学者而言,这份资料具有较高的参考价值。通过深入学习本文档,读者可以系统地了解Java中的多线程并发机制,并掌握如何在实际项目中有效地运用这些技术。 #### 二、Java多线程并发技术概述 多线程是现代软件...

    JAVA监听目录改变

    在Java编程中,有时我们需要监控某个目录的变化,例如文件的添加、删除或修改。这个功能在文件上传、日志监控、实时数据处理等场景中非常...这个功能在很多场景下都有实用价值,但需要注意不同平台的兼容性和性能问题。

    FlashPaper4Java.rar

    《Java实现FlashPaper自动化转换为SWF文件》 在信息技术领域,文档的转换与呈现方式多样,其中...这不仅简化了工作流程,还提高了文档处理的效率,尤其对于需要大量处理文档的业务场景,这一技术具有广泛的应用价值。

    java面试题集合

    根据提供的文件信息,我们可以整理出以下关键的Java知识点: ...这些知识点涵盖了异常处理、静态变量、字符串常量池、线程同步、设计模式等多个方面,对于准备Java面试的人来说是非常有价值的复习材料。

    java多线程编程总结.pdf

    Java多线程编程是Java语言中的一项高级特性,它允许同时运行多个线程来执行多个任务,以达到提高程序...随着Java技术的不断进步,了解并掌握新版本中引入的并发工具和语言特性,对于提升多线程编程能力具有重要价值。

Global site tag (gtag.js) - Google Analytics