Sequential consistency is a memory-consistency model in which every atomic operation participates in one global order, while preserving each thread’s program order. Unlike acquire-release consistency, it extends causal ordering into a total ordering across atomic objects. section 19.3
This model makes concurrent behavior easier to reason about, but its stronger constraints can restrict parallel execution and impose implementation costs. It is the default consistency model for atomic operations, not for ordinary C library functions. section 19.3 section 19.5
Two threads synchronizing through an atomic
Imagine two threads communicating through an atomic object x while their observable state changes over time. Sequential consistency requires every atomic operation on x—and on any other atomic object—to fit into one timeline that agrees with each thread’s own execution order, even when processors or memory banks differ. section 19.3
The C atomic interfaces that use their ordinary, non-explicit forms provide sequential consistency, including:
- The _explicit variants accept a memory_order argument; memory_order_seq_cst requests sequential consistency and matches the ordinary forms. section 19.4

