In concurrent programs, race conditions are a fact of life but they arenāt all bad. Sometimes, race conditions are benign, as is often the case with lazy initialization. The problem with racing to set a value, however, is that it can result in multiple objects being instantiated when only one is needed. Take the ...