Java线程:线程中断
2015-12-21 16:23
453 查看
interrupt方法可以用来请求终止线程。
当对一个线程调用interrupt方法时,线程的中断状态被置位。这时每个线程都有boolean标志。每个线程都应该不时的检查这个标志,以判断线程是否被中断。
要想弄清楚中断状态是否被置位,首先调用静态的Thread.currentThread方法获得当前线程,然后调用isInterrupted方法:
当在一个被堵塞的线程(调用sleep或wait)上调用interrupt方法时,堵塞调用将会被Interrupted Exception 异常中断。
注意:
1 一个被中断的线程不一定被终止。中断一个线程只不过是引起它的注意。被中断的线程可以决定如何响应中断。
2 有两个类似的中断线程的方法interrupted和isInterrupted。Interrupted是一个静态方法,它检测当前的线程是否被中断,而且会清除该线程的中断状态。而isInterrupted可用来检验是否有线程被中断,并且不会改变中断状态。
当对一个线程调用interrupt方法时,线程的中断状态被置位。这时每个线程都有boolean标志。每个线程都应该不时的检查这个标志,以判断线程是否被中断。
要想弄清楚中断状态是否被置位,首先调用静态的Thread.currentThread方法获得当前线程,然后调用isInterrupted方法:
while (!Thread.currentThread().isInterrupted()&&more work to do) { do more work }
当在一个被堵塞的线程(调用sleep或wait)上调用interrupt方法时,堵塞调用将会被Interrupted Exception 异常中断。
注意:
1 一个被中断的线程不一定被终止。中断一个线程只不过是引起它的注意。被中断的线程可以决定如何响应中断。
2 有两个类似的中断线程的方法interrupted和isInterrupted。Interrupted是一个静态方法,它检测当前的线程是否被中断,而且会清除该线程的中断状态。而isInterrupted可用来检验是否有线程被中断,并且不会改变中断状态。
相关文章推荐
- Java中管理资源的引用队列相关原理解析
- Eclipse远程调试
- java web 下载文件乱码处理
- JAVA中的BASE64加解密
- 马士兵:JAVA自学之路
- java批量修改
- struts2框架入门示例
- java 常见的异常大集合
- Java NIO
- 学习springMVC 01
- 轻量级JavaEE企业应用实战(十二)
- eclipse svn插件 设置自动加锁相关
- XML:使用JAXB完成JavaBean和xml的转化
- springMVC整合shiro
- 详解Java编程中包package的内容与包对象的规范
- Java Static关键字
- Java点击下载按钮弹出下载文件对话框
- org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.io.Serializable]:
- FileThreadPool
- struts2单文件和多文件的上传和下载