Double-Checked Locking Broken Without Volatile | JavatricX Java Technical Interview & Solutions Guide
CONCURRENCY & JMM | P2 - HIGH | Production Scenario #30: JVM instruction reordering exposes half-initialized singleton instance to other threads.
Open interactive notebook on JavatricX