作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
CPU 必须确保的唯一一件事是在线程内对 X 的写入不会影响后续对其关联的 RX 内存位置的分配。它没有说明它从何处获取要写入的值。
所以,在线程 1 中,CPU 说
“哦,我需要读X”,所以开始读操作。
然后它说
“我需要写入 X”,然后QUEUES写入队列中的值
线程 2 做同样的事情。
“哦,我需要阅读 X”并开始阅读。
“我需要写入 X”,并将写入排队。
现在我们有两个等待读取和两个排队写入。
如果 CPU 架构表明一个内核上的读取可能会询问另一个内核的写入队列,那么两个内核都可以相互读取对 X 的未完成写入。因此,您可以将两个值跨内核拉取,最终分配给 RX该线程的内存位置。
当您在指令流中放置内存屏障时,它可以防止这种过度急切的排队写入读取。
关于Java 内存模型 - 令人惊讶的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69524145/
很抱歉新手的问题,但是: 我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉
我是一名优秀的程序员,十分优秀!