gpt4 book ai didi

c++ - 原子 128 位内存模式选择

转载 作者:太空狗 更新时间:2023-10-29 21:24:00 30 4
gpt4 key购买 nike

使用 gcc,我的代码有一个 128 位原子整数,而不是由一个线程写入,并从 31 个线程并发读取。我不关心这个变量与我程序中任何其他内存同步的操作(即我可以接受编译器将两次写入重新排序为两个不同的整数),只要对该变量的读写是一致的。我只想保证对原子 128 位的写入“最终”保证反射(reflect)在从该变量读取的 31 个线程中。

使用宽松的内存模型安全吗?我应该注意哪些问题?

最佳答案

宽松的顺序并不能保证写入线程写入的值对任何读取线程都是可见的。

读者只能看到变量的初始值而看不到任何变化,这是有效的行为。但是,可以保证编写器线程总是至少看到他自己对变量所做的更改(并且可能,但同样不能保证,任何后来由另一个线程应用的更改)。

换句话说:您仍然在单个线程中获得顺序一致性,但不同线程之间没有任何一致性。

关于c++ - 原子 128 位内存模式选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052243/

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