为什么下面代码子线程无法中断run方法中的while循环?-灵析社区

一只tomatoo

### 题目描述 如题 ### 题目来源及自己的思路 子线程修改condition值为false,run方法while循环终止。 ### 相关代码 粘贴代码文本(请勿用截图) public class VisibilityDemo { private static volatile boolean condition = true; static void run() { while (condition) { // do something System.out.println("..."); } System.out.println("退出"); } public static void main(String[] args) { run(); new Thread(() -> { condition = false; }).start(); } } ### 你期待的结果是什么?实际看到的错误信息又是什么? 期待:打印一段".."后打印"退出"。 实际:持续打印"..",不会打印"退出"。

阅读量:31

点赞量:0

问AI
周舟莫UI设计
run 不结束,不会执行到后面的 new Thread 。而 run 不会结束。 你可以把 run 也放到一个线程中去。
,
万码DXBXPQNH
你把变量传进去啊,没穿进去你就改了个寂寞