interrupt,interrupted和isInterrupted
来源:互联网 发布:linux翻看历史命令记录 编辑:程序博客网 时间:2024/06/02 01:58
Thread.interrupt
Thread.interrupt用来中断当前执行的线程。它并不会像Thread.stop那样直接停止正在运行的线程,
而是设置该线程的中断状态位为true,然后可以在线程里通过interrupted或isInterrupted来判断中断标
从而退出程序执行过程。
interrupted和isinterrupted
interrupted和isInterrupted都是判断线程的中断标志是否设置为true。但他们有明显的区别
看一下这两个方法的具体实现:
1.interrupted
public static boolean interrupted () { return currentThread().isInterrupted(true); }
interrupted直接调用当前线程的isInterrupted(true)方法,只作用于当前线程,另外这里isInterrupted的参数
是true, 这个参数代表啥意思呢?
我们再来看看isInterrupted方法在native 层的定义
private native boolean isInterrupted( boolean ClearInterrupted);
通过参数名我们能猜到它代表是否要清除状态位。如果这个参数为true,说明返回线程的状态位后还要清掉原来的状态位(恢复成原来情况)。这个参数为false,就是直接返回线程的状态位。
2.isInterrupted
public boolean isInterrupted () { return isInterrupted( false);}
isInterrupted 是作用于调用该方法的线程对象所对应的线程。调用者有可能运行在本线程,也有可能
运行在其他线程,而且isInterrupted的参数为false,从前面对isInterrupted的说明可知,它不会更改
线程原来的状态位。
现在我们可以将interrupt,interrupted,isInterrupted简单总结如下:
1.interrupt不是像stop那样直接中断线程,而是向线程里面设置了一个中断标志位;
2.interrupted 判断当前线程是否设置了中断标志,是一个静态方法,仅仅作用于本线程,同时它被调用后
线程的中断标志会被清除。
3.isInterrupted 判断线程是否设置了中断标志,他的用者有可能运行在本线程,也有可能运行在其他线程,同时它
不会清除线程的中断标志。
- interrupt,interrupted和isInterrupted
- interrupt(),interrupted() 和isInterrupted()使用
- 【Java】interrupt、interrupted和isInterrupted的区别
- JAVA interrupt、interrupted和isInterrupted的区别
- interrupt(),interrupted() 和 isinterrupted() 的区别
- java---interrupt、interrupted和isInterrupted的区别
- interrupt、interrupted和isInterrupted的区别
- interrupt、interrupted和isInterrupted的区别
- 关于interrupt,interrupted和isInterrupted的理解
- interrupt、interrupted和isInterrupted的区别
- interrupt、interrupted 、isInterrupted 区别
- interrupt、isInterrupted、interrupted
- interrupt、interrupted 、isInterrupted 区别
- Java:interrupt()、interrupted()、isInterrupted()
- interrupt、interrupted 、isInterrupted 区别
- interrupt、interrupted 、isInterrupted 区别
- interrupt、interrupted 、isInterrupted 详解
- interrupt、interrupted 、isInterrupted、InterruptedException
- 关于游戏中文件数据和系统文件和程序调用的几个技术方案
- 第七周项目二 链队算法库
- L3-001. 凑零钱
- 自定义标签
- 201312-1 出现次数最多的数 ccf
- interrupt,interrupted和isInterrupted
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- Dynamic CRM 2016 IFD配置(1)证书颁发机构配置
- Python XML的解析与创建
- Mysql 2013错误(Lost connection to MySQL server )解决经验
- response向浏览器写随机数,汉字以及资源下载
- elasticSearch 5.0.0 安装部署常见错误或问题
- 第三章实验题
- 输入半径计算出圆的面积和周长