gpt4 book ai didi

concurrency - x86_64 内存重新排序

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

在x86_64架构上,下面的代码是否永远成立:

A=1;B=1;

线程1:存储A=2;商店 B=3;线程2:加载B==3;加载A==2

是否存在 B==3 但 A==1 的可能性??

最佳答案

Intel 体系结构手册第 3A 卷和 3B 卷的第 8.2.3 章深入探讨了这个主题,但是,对于您的情况(8.2.3.7 Stores Are Seen in a Consistent Order by Other Processors),有严格的顺序,这意味着按照以下顺序观察写入它们是制造出来的,因此不可能 BA 时读取更新值仍然具有旧值。

应该注意的是,在这种情况下通过使用可用的各种内存防护指令提供显式屏障通常是个好主意,SFENCE , LFENCE & MFENCE通过_mm_sfence , _mm_lfence & _mm_mfence .在 x64 下,您还可以选择 __faststorefence (仅限 MSVC)。

关于concurrency - x86_64 内存重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15583793/

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