Memory fence(内存栅栏/内存屏障):并发编程与计算机体系结构中的一种同步机制,用于限制编译器或 CPU 对内存读写操作的重排序,并在多核/多线程环境中帮助保证某些内存操作的可见性与顺序性。常见于无锁编程、原子操作与底层并发库中。(不同平台也常称 memory barrier。)
/ˈmɛməri fɛns/
A memory fence makes sure the update is visible to other threads.
内存栅栏确保这次更新对其他线程可见。
Without a memory fence, the compiler or CPU may reorder reads and writes, causing subtle race conditions in lock-free code.
如果没有内存栅栏,编译器或 CPU 可能会重排读写操作,从而在无锁代码中引发隐蔽的竞态问题。
memory 源自拉丁语 memoria(记忆、记忆力);fence 源自古法语 fens/defens(防护、围护)。在计算机语境中,fence 借喻为“把某些内存操作围起来”,让它们不要被跨越或乱序执行,因此形成术语 memory fence,强调对内存访问顺序的“隔离/约束”。
atomic_thread_fence)的语义。