【发布时间】:2021-05-13 09:08:30
【问题描述】:
考虑下面的代码:
static std::atomic<int> x;
// Thread 1
x.store(7, std::memory_order_relaxed);
// Thread 2
x.load(std::memory_order_relaxed);
进一步假设 线程 2 执行了 load 几个周期 em> 线程 1 执行了store。
是否保证 Thread 2 会在所有硬件平台上读取值 7?换句话说,在线程 1 执行 store 之后,是否保证值 7 对稍后执行相同变量的轻松加载的线程立即可见?
【问题讨论】:
-
你为什么老是问同样的问题?