Skip to content

Atomics and Memory Ordering

Concepts

Atomicity:

Operation cannot be interrupted.

Visibility:

Updates become observable.

Ordering:

Control operation sequence.


Common Memory Orders

Order Meaning
relaxed Atomic only
acquire Prevent following reorder
release Prevent previous reorder
seq_cst Strong ordering

Typical Pattern

Producer:

data=123;

store_release(flag);

Consumer:

load_acquire(flag);

read(data);

Guarantee:

observe flag


observe data

  • c11-atomics
  • synchronization-primitives-selection