Why synchronized Doesn't Prevent Instruction Reordering (and Why DCL Needs volatile)
The article explains that Java's synchronized keyword guarantees mutual exclusion but cannot stop the CPU or compiler from reordering instructions inside the critical section, leading to a broken double‑checked locking pattern unless the instance field is declared volatile.
