C++ 采用了顺序一致的原子变量,很像Java 同步原子(volatile)(与 C++ volatile 没有关系)。

atomic<int> done;

// Thread 1                    // Thread 2
atomic_store(&done, 1);        while(atomic_load(&done) == 0) { /* loop */ }

C++ 弱同步原子(acquire/release atomic)