内存屏障
内存屏障(或栅栏)是非顺序一致性的硬件提供的一种显式指令,用于控制排序提供更强的内存排序,修复同步算法。
添加内存屏障,确保每个线程在开始读取之前都会刷新其先前对内存的写入:
// Thread 1 // Thread 2
x = 1 y = 1
barrier barrier
r1 = y r2 = x
x86 总存储有序(x86-TSO) 加上内存屏障之后 r1=0, r2=0
就会变得不可能。