内存屏障(Memory Barrier)是CPU提供的底层同步指令,主要解决两个核心问题:
1. 指令重排序:现代处理器会优化指令执行顺序
2. 可见性 :确保写操作对其他线程可见cpp
// 内存屏障使用示例
std::atomic flag(0);
int data = 0;// 线程A
data = 42;
flag.store(1,深入 std::memoryorderrelease); // 释放屏障// 线程B
while(flag.load(std::memoryorderacquire) != 1); // 获取屏障
std::cout << data; // 保证看到42C++11提供了六种内存序