请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

加上Thread.sleep()后,要运行很久才能结束

加上Thread.sleep(1000)后,运行后会像视频中很快停止,但是出现“任务运行结束了”这几个字要很多分钟以后,不像视频中立刻出现,这是为什么呢?

图片描述

正在回答

3回答

你下载源码看下我的代码,是这样的:

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,所以会耗费很长时间。

0 回复 有任何疑惑可以回复我~
  • 提问者 骑着猪找未来 #1
    理解了,谢谢老师。看视频还是不仔细
    回复 有任何疑惑可以回复我~ 2019-10-17 10:44:36
  • 提问者 骑着猪找未来 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-12-12 21:58:01
悟空 2019-10-16 23:53:06

因为你中断后,虽然不再打印“是10000的倍数”,但是num++还是在持续运行的,直到计算到了Integer.MAX_VALUE/2,所以会耗费很长时间。

0 回复 有任何疑惑可以回复我~
  • 提问者 骑着猪找未来 #1
    为什么老师的视频里是立即运行出来呢,我的是等很久,十分钟左右才结束,这比没有加入interrupt方法时正常结束的时间相差太远了
    回复 有任何疑惑可以回复我~ 2019-10-17 09:31:56
悟空 2019-10-16 22:45:22

你贴一下代码,我来看看

0 回复 有任何疑惑可以回复我~
  • 提问者 骑着猪找未来 #1
    问题描述错了,是加了interrupt()方法后,运行中断后,要很久才能出现"任务结束运行"这几个字
    回复 有任何疑惑可以回复我~ 2019-10-16 23:23:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信