JDK1.6中的interrupt函数: 
public void interrupt() 中断线程

如果当前线程没有中断它自己(这在任何情况下都是允许的),则该线程的 checkAccess 方法就会被调用,这可能抛出 SecurityException。

如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException。

如果该线程在可中断的通道上的 I/O 操作中受阻,则该通道将被关闭,该线程的中断状态将被设置并且该线程将收到一个 ClosedByInterruptException。

如果该线程在一个 Selector 中受阻,则该线程的中断状态将被设置,它将立即从选择操作返回,并可能带有一个非零值,就好像调用了选择器的 wakeup 方法一样。

如果以前的条件都没有保存,则该线程的中断状态将被设置。

中断一个不处于活动状态的线程不需要任何作用。

抛出:SecurityException - 如果当前线程无法修改该线程

线程调用interrupt()本身并不抛出InterruptException异常, 而是在线程处于等待或睡眠状态时若被中断(取消)则会抛出InterruptException,即由sleep(),wait()抛出InterruptException,便于我们对线程的提前中断做出处理。(为什么说是提前中断呢,因为线程sleep或wait是在等待资源满足或某条件触发,在未满足前被强制中断)
更多InterruptException处理见:Java处理与实践:处理 InterruptedException

转载于:https://blog.51cto.com/dongdong1314/325160

interrupt InterruptException相关推荐

  1. interrupt()方法和InterruptException异常

    interrupt()方法和InterruptException异常,是java专门用来处理线程阻塞的.线程阻塞,就表示要等待一段时间.如果需要等待的时间比较长,正常还没结束之前想中断某个线程的阻塞状 ...

  2. Java 多线程编程之 interruptException

    下面是java 多线程中的异常处理: package multithread; public class InterruptException { public static void main(St ...

  3. Java的Interrupt与线程中断

    中断状态 每一个线程都有一个boolean属性,表示中断状态,初始值为false. 中断线程:Thread.interrupt() 正常情况下,只是将线程的中断状态变为true.线程中可以通过轮询中断 ...

  4. java线程中断 interrupt

    1.  线程的状态: new -> 创建完线程,但是还没有启动 runnable -> 表示线程是活跃状态 terminated -> 表示线程已经结束了 线程在sleep的时候是什 ...

  5. 什么是interrupt

    什么是interrupt? interrupt是java中属于Thread的一个方法,调用它目的是给线程发出中断信号,但是不保证线程真的会中断.线程是否中断是由被通知的线程自己处理. 如果线程处于被阻 ...

  6. 关于interrupt(),interrupted(),isInterrupted()用法分析

    我想代码是非常容易解释这个问题的了.下文会给出总结. 总结点击这里或者往下阅读: 直接来一段小代码吧: public class Interrupt {public static void main( ...

  7. Thread的interrupt()方法排雷

    有些时候会需要在线程的run()方法返回之前手动中止线程,这时就会用到Thread的interrupt()实例方法.这个方法的使用有许多坑,稍不注意就会出错.本文将对这个方法以及与它相关的知识点进行一 ...

  8. Java Interrupt

    引言 本文中,我们主要介绍一下 Java 提供的 Interrupt 机制的常见使用方法,以及 Interrupt 的实现.更多相关文章和其他文章均收录于贝贝猫的文章目录. Interrupt 在 J ...

  9. java io中断_Java的Interrupt与线程中断

    中断状态 每一个线程都有一个boolean属性,表示中断状态,初始值为false. 中断线程:Thread.interrupt() 正常情况下,只是将线程的中断状态变为true.线程中可以通过轮询中断 ...

最新文章

  1. Java项目:宠物商城系统(java+Springboot+Maven+mybatis+Vue+mysql)
  2. activity在屏幕旋转时的生命周期
  3. VTK:相互作用之CallData
  4. python pip install pil_解决python的pip install PIL失败问题
  5. HTML+CSS+JS实现 ❤️从亮到暗图片滤镜特效❤️
  6. ASP.NET知识点
  7. filter笔记(主要看到黑马教程的ppt)
  8. Android模拟器安装apk应用程序
  9. 简易高重用的jdbcutils工具封装实现类以及简易连接池实现
  10. [笔记]3.软件代码中的BUG问题的一些记录
  11. java当前时间长整数值_在Java中获取当前年份的整数值
  12. Info.plist中 各字段详解
  13. java常见面试题:Java程序员面试题(四)
  14. access无法 dolby_Win10专业版装不了dolby该怎么办?Win10 dolby音效驱动安装教程
  15. 幸运抽奖java_java10幸运抽奖
  16. C++ TCP 网络编程与数据通信
  17. 直播商城APP功能介绍
  18. VLC-Android音频播放不完整问题踏坑
  19. php ini_get,ini_get - [ php中文手册 ] - 在线原生手册 - php中文网
  20. 解决svn冲突的办法

热门文章

  1. 如何解决普通用户使用sudo找不到命令
  2. 某日是当前年的第几天
  3. AzureDirectory Library for Lucene.Net
  4. Dockerfile中npm中Error: could not get uid/gid问题的解决方法
  5. php7 configure: error: Cannot find OpenSSL‘s <evp.h> 问题解决
  6. Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案
  7. ubuntu 下更新pip后发生 ImportError: cannot import name ‘main‘的问题解决
  8. 为什么`[`比`子集更好?
  9. 如何以编程方式退出WPF应用程序?
  10. 如何在Python中使用“ with open”打开多个文件?