I assume you are referring double checked locking as DLC. It doesn't guarantee that only one instance will be created.
This article explains how double checked locking can fail. It has something to do with the
java memory model. It is supposed to have been be fixed with Java 1.5 but it seems that there is some
additional overhead invovled and is not worth using.
Bottom line: avoid using double checked locking. Instead you can do somthing like this:
The createInstance() method will have the logic for creating a new Object adn will return its reference.
[ June 12, 2006: Message edited by: Satish Chilukuri ]