Memory Consistency Models: From Sequential Consistency to the C++11 Memory ModelA rigorous treatment of memory consistency models: Lamport's sequential consistency, the transition to relaxed models, the formal semantics of the C++11 memory model with its acquire-release and relaxed atomics, and how to reason about concurrent code that doesn't tear.