gpt4 book ai didi

Java 内存模型 - 令人惊讶的行为

转载 作者:行者123 更新时间:2023-12-05 04:43:46 25 4
gpt4 key购买 nike

我正在阅读 JSR-133 中的 Java 内存模型,但我无法理解这种行为如何被接受:
enter image description here

有人可以解释一下吗?

最佳答案

CPU 必须确保的唯一一件事是在线程内对 X 的写入不会影响后续对其关联的 RX 内存位置的分配。它没有说明它从何处获取要写入的值。

所以,在线程 1 中,CPU 说
“哦,我需要读X”,所以开始读操作​​。
然后它说
“我需要写入 X”,然后QUEUES写入队列中的值

线程 2 做同样的事情。
“哦,我需要阅读 X”并开始阅读。
“我需要写入 X”,并将写入排队。

现在我们有两个等待读取和两个排队写入。

如果 CPU 架构表明一个内核上的读取可能会询问另一个内核的写入队列,那么两个内核都可以相互读取对 X 的未完成写入。因此,您可以将两个值跨内核拉取,最终分配给 RX该线程的内存位置。

当您在指令流中放置内存屏障时,它可以防止这种过度急切的排队写入读取。

关于Java 内存模型 - 令人惊讶的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69524145/

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