What are some recommended approaches to achieving thread-safe lazy initialization? For instance,
// Not thread-safe public Foo getInstance(){ if(INSTANCE == null){ INSTANCE = new Foo(); } return INSTANCE; }