public class VolatileDemo {
private static boolean flag = true;
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(() -> {
while (flag) { }
});
t1.start();
Thread t2 = new Thread(() -> flag = false);
t2.start();
}
}
线程t1为什么没有一直运行
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
於黾 2022-05-24 10:43关注为什么会一直运行
flag是个全局静态变量
你在线程2里把它置成了false
那么在线程1里它的值也变成了false本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录