采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
加上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余道并发高频面试题
1.9k 26
920 12
1.1k 12
2.5k 12
1.1k 11