gpt4 book ai didi

java - 如何理解 Java 中的 "Happens-before consistency is not sufficient"

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:01 25 4
gpt4 key购买 nike

<分区>

chapter 17 of Java language specification ,有一节解释了为什么“发生在一致性不够”之前。这是示例:

At first,  x = y = 0
Thread 1 | Thread 2
r1 = x; | r2 = y;
if (r1 != 0) y = 1; | if (r2 != 0) x = 1;

这是一个可能的执行轨迹:

r1 = x;  // sees write of x = 1
y = 1;
r2 = y; // sees write of y = 1
x = 1;

怎么会这样?我感到困惑的是,当第一个 Action 看到 x = 1 时,这是否意味着条件 r2 != 0 已变为真,因此 y 已被分配给 1 ?但按照这个顺序,y = 1 出现在 r1 = x 之后。我在哪里弄错了理解这个例子?我应该如何正确解释这个例子?

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