采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
加上Thread.sleep(1000)后,运行后会像视频中很快停止,但是出现“任务运行结束了”这几个字要很多分钟以后,不像视频中立刻出现,这是为什么呢?
你下载源码看下我的代码,是这样的:
while
(!Thread.currentThread().isInterrupted() && num <= Integer.MAX_VALUE /
2
) {
if
(num %
10000
==
0
System.out.println(num +
"是10000的倍数"
);
}
num++;
这里是while判断了中断,如果中断就跳出while循环。但是你的代码里的判断放到了while里面的if里,所以你中断后,虽然不再打印“是10000的倍数”,但是num++还是在持续运行的,直到计算到了Integer.MAX_VALUE/2,所以会耗费很长时间。
理解了,谢谢老师。看视频还是不仔细
非常感谢!
因为你中断后,虽然不再打印“是10000的倍数”,但是num++还是在持续运行的,直到计算到了Integer.MAX_VALUE/2,所以会耗费很长时间。
为什么老师的视频里是立即运行出来呢,我的是等很久,十分钟左右才结束,这比没有加入interrupt方法时正常结束的时间相差太远了
你贴一下代码,我来看看
问题描述错了,是加了interrupt()方法后,运行中断后,要很久才能出现"任务结束运行"这几个字
登录后可查看更多问答,登录/注册
完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题
2.0k 26
1.0k 12
1.2k 12
2.6k 12
1.2k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号