In my earlier article “Double-Checked Locking: Clever, but Broken” (JavaWorld, February 2001), I described how several common techniques for avoiding synchronization are in fact unsafe, and ...