gpt4 book ai didi

java - 线程 2 是否可以打印 “x=0” ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:26 25 4
gpt4 key购买 nike

线程 2 是否可以打印“x=0”?

int x = 0;
boolean bExit = false;

Thread 1 (not synchronized)
x = 1;
bExit = true;

Thread 2 (not synchronized)
if (bExit == true)
System.out.println("x=" + x);

最佳答案

Is it possible for Thread 2 to print “x=0”?

如果指令被 JIT 编译器重新排序为:

线程 1:

bExit=true
x=1

线程 2:

 if (bExit == true) System.out.println("x=" + x); //prints 0

当您使用同步块(synchronized block)(或其他相关结构)时,编译器不会重新排序指令。

关于java - 线程 2 是否可以打印 “x=0” ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com