1. Concurrency Programming (7): volatile — From Language Semantics to the CPU

    Uses the counter + ready example to trace Java volatile from the Java Memory Model through HotSpot to x86-64, showing how visibility and ordering are defined and implemented, and how volatile differs from atomics and mutexes.