Java多线程 while内try/catch 导致自动清除中断信号
发布日期:2021-06-30 13:11:43
浏览次数:2
分类:技术文章
本文共 1133 字,大约阅读时间需要 3 分钟。
文章目录
while内try/catch 导致自动清除中断信号
示例代码如下
while循环内部, 进行了Thread.sleep(10)
的try catch public class CantInterrupt { public static void main(String[] args) throws InterruptedException { Runnable runnable = () -> { int num = 0; while ( num <= 10000) { if (num % 100 == 0) { System.out.println(num + " 是100的整数"); } num++; //每一次循环,休眠10ms try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } }; //启动线程 Thread thread = new Thread(runnable); thread.start(); //此处的 Thread.sleep(5000); 是休眠主线程, 让子线程运行5s, //子线程运行5s后, 给出子线程的休眠信号 Thread.sleep(5000); thread.interrupt(); }}
程序运行如下 .
说明了即使发出了中断的信号, 抛出了异常, 但是程序依然会继续运行, 说明中断失败. 即使是在while 的判断中,加上线程状态的判断, 也不会成功的进行线程的中断. 主要的原因是 while循环内的这段try catch代码, 会把线程中断的状态位给清除掉了try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); }
转载地址:https://javaweixin6.blog.csdn.net/article/details/108088184 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月27日 12时29分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java常用类 String面试题
2019-04-30
Windows10下的powershell美化教程
2019-04-30
利用ffmpeg合并音频和视频
2019-04-30
solr修改schema文件(solr修改配置文件)
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
大厂经典面试题:Redis为什么这么快?
2019-04-30
Android之Retrofit基本用法篇
2019-04-30
Netty与网络协议资料整理
2019-04-30
golang实现大数据量文件的排序
2019-04-30
golang中的time包
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
2021.5.19 JS高级第二天
2019-04-30
啊沙发沙发
2019-04-30
SpringBoot内置Tomcat配置参数
2019-04-30
局部加权回归
2019-04-30