1. 6.1 Start with the Hardwarehistorical

    Hardware foundations needed to understand the JMM: von Neumann architecture, caches, coherence, pipelines, reordering, memory barriers, and memory consistency models.

  2. 6.23 Revisiting the JMMhistorical

    After understanding the underlying computer architecture, revisit why the Java Memory Model is needed, what it defines, and happens-before.