GCC,[13] version 4.4.0 and later,[14] has __sync_synchronize.
Since C11 and C++11 an atomic_thread_fence() command was added.
The Microsoft Visual C++ compiler[15] has MemoryBarrier().
Sun Studio Compiler Suite[16] has __machine_r_barrier, __machine_w_barrier and __machine_rw_barrier.
unofficial open jdk – github
openjdk8 源码下载
// A compiler barrier, forcing the C++ compiler to invalidate all memory assumptions
inline void compiler_barrier() {
__asm__ volatile ("" : : : "memory");
}