中断机制小总结
方法介绍
- public void interrupt()
- 实例方法 Just to set the interrupt flag
- 实例方法仅仅是设置线程的中断状态为true,发起一个协商而不会立刻停止线程
- public static boolean interrupted()
- 静态方法 Thread.interrupted();
- 判断线程是否被中断并清除当前中断状态(做了两件事情)
- 1.返回当前线程的中断状态,测试当前线程是否已被中断
- 2.将当前线程的中断状态清零并重新设置为false,清除线程的中断状态
- 3.这个方法有点不好理解在于如果连续两次调用此方法,则第二次返回false,因为连续调用两次的结果可能不一样
- public boolean isInterrupted()
- 实例方法
- 判断当前线程是否被中断(通过检查中断标志位)
public boolean isInterrupted() 和 public void interrupt() 的区别
Thread.interrupted();//静态方法
Thread.currentThread().isInterrupted();//实例方法
/**
* Tests if some Thread has been interrupted. The interrupted state
* is reset or not based on the value of ClearInterrupted that is
* passed.
*/
private native boolean isInterrupted(boolean ClearInterrupted);
上面isInterrupted 方法清晰的表达了“中断状态将会根据传入的ClearInterrupted参数值确定是否重置”
从上图看出静态方法和实例方法 底层都调的isInterrupted(boolean ClearInterrupted)方法 只不过一个传的是false 不需要清理打断状态 一个传的是true 需要清理打断状态
本文作者:KwFruit
本文链接:https://www.cnblogs.com/mangoubiubiu/p/17978088
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-01-21 JSR 303 表单校验(一)
2021-01-21 element ui 表单校验(vue)
2021-01-21 layui表单校验