Modification order
Modification order is the total order of modifications to a particular atomic object, consistent with the sequenced-before order of each participating thread.
C++ Concurrency in Action, Second Edition
A per-object order of all writes to that object, including its initialization, on which all threads in a given execution must agree.
- How it is used
- Defines the per-object agreement used to reason about writes and atomic reads across threads.
- How deep it goes
- Explains initialization, thread agreement, read constraints, and the limit of per-object ordering; leaves cross-object guarantees to memory-order rules.
- Examples
- Contrasts relaxed atomic flag reads that can miss an earlier write with acquire-release flag reads that order it.
- What you can do after
- Diagnose/debug with it why atomic reads can disagree about operations on different objects without reversing either object's modification order.
Read how C++ Concurrency in Action, Second Edition explains modification order →
Modern C, Third Edition
Modification order is the total order of modifications to a particular atomic object that is consistent with each participating thread's sequenced-before order.
- How it is used
- Uses atomic objects to reason about cross-thread visibility, synchronization, and the ordering of competing writes.
- How deep it goes
- Defines per-object ordering and contrasts it with sequential consistency, but does not develop a full formal memory-model derivation.
- Examples
- Uses a shared atomic x initialized to 11, threaded increments, decrements, assignments, reads, and a synchronization diagram.
- What you can do after
- Evaluate/understand how atomic reads and writes can be ordered consistently and when stronger global ordering is required.
Read how Modern C, Third Edition explains modification order →
Modern C
Modification order is the single order of all modifications to a particular atomic object that is consistent with each participating thread's sequenced-before order.
- How it is used
- Explains how threads perceive changes to one atomic object and how atomic operations provide synchronization.
- How deep it goes
- Defines the per-object order, illustrates six modifications, and contrasts it with sequential consistency’s global order across atomic objects.
- Examples
- Uses atomic x with initialization to 11, two increments, three assignments, and cross-thread reads that establish synchronization.
- What you can do after
- Evaluate whether atomic operations require per-object ordering or sequentially consistent global ordering.
Related concepts
- sequential consistencyproduced by · Sequential consistency is a memory model in which participating operations appear in a single total order that preserves each thread’s program order.
- atomic typeused by · An atomic type is a type whose supported accesses and operations are indivisible with respect to concurrent execution and provide defined synchronization semantics.
- speculative executioncontrasts with · Speculative execution is a processor technique that performs predicted work before its need or correctness is confirmed, discarding results if the prediction is wrong.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.


