加上Thread.sleep()后,要运行很久才能结束
来源:5-3 如何停止线程

骑着猪找未来
2019-10-16
加上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,所以会耗费很长时间。
022019-12-12 -
悟空
2019-10-16
因为你中断后,虽然不再打印“是10000的倍数”,但是num++还是在持续运行的,直到计算到了Integer.MAX_VALUE/2,所以会耗费很长时间。
012019-10-17 -
悟空
2019-10-16
你贴一下代码,我来看看
012019-10-16
相似问题