Double-checked locking and the Singleton pattern
Examine the roots of the double-checked locking idiom, why it was developed, and why it doesn't work. The Java programming language contains several useful programming idioms. It also contains some that further study has shown should not be used. Double-checked locking is one such idiom that should never be used.