博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程中断。。
阅读量:4506 次
发布时间:2019-06-08

本文共 729 字,大约阅读时间需要 2 分钟。

线程中断主要设涉及3个方法:实例方法 interrupt、静态方法interrupted、实例方法isInterrupted:

  1. 实例方法 interrupt作用:此方法调用后,如果调用实例线程当前正在调用wait、join、sleep、或在可中断的InterruptibleChannel IO操作、或阻塞在 Selector ,这几种情况下线程会在调用上述方法的代码块中抛出相应的InterruptedException ,但不会将中断状态值interrupt status由false设为true;如果当前现在正在正常执行,则调用interrupt方法调用后只是会设置一下线程的interrupt status,由false变成true;根据此方法的特点,抛出异常与设置中断状态值为true不会同时进行;

  2. 静态方法interrupted作用:清除当前线程的interrupt status状态值,即如果当前线程的中断状态值是true(即已被中断),则调用此方法后中断状态值将变成false,此时方法返回值为true,表示清楚中断状态成功;如果当前线程未被中断,则不会改变中断状态值,此时方法返回值为false。因此,如果在线程已被中断的情况下连续两次调用interrupted方法,第一次返回true,第二次返回false;根据此方法的特点,可以看出:只有当前线程自己才可以将中断状态值由true改为false。

  3. 实例方法isInterrupted作用:只是检测调用实例线程的中断状态值,如果已中断则返回true,否则返回false;

然否?

转载于:https://www.cnblogs.com/Struts-pring/p/5145269.html

你可能感兴趣的文章
SQL面试题目汇总
查看>>
为何img、input等内联元素可以设置宽、高
查看>>
Java知识总结---整合SpringMVC+Mybatis+Spring(二)
查看>>
android android:duplicateParentState="true" "false"
查看>>
HDU 3507 Print Article (斜率优化)
查看>>
Web 设计师的 50 个超便利工具(下)
查看>>
C++底层数据结构实现
查看>>
Python学习(二)
查看>>
如何提高Linq查询的性能(上)
查看>>
敏捷开发相关编辑思想(SOA、DDD、REST、CQRS)
查看>>
Qt中mysql编译出错问题
查看>>
resin3服务器resin.conf文件的配置
查看>>
ubuntu下codeblocks编译出现libxxx.so needed by xxx.so not found
查看>>
effective C++ 条款 40:明智而审慎地使用多重继承
查看>>
三维渲染引擎设计与实践(五)
查看>>
20154313 刘文亨 EXP9
查看>>
快速排序
查看>>
Solidity的三种转账方式与比较
查看>>
js api 之 fetch、querySelector、form、atob及btoa
查看>>
php json_encode
查看>>