Memory Model Considerations - Double Checked Locking | OneNoughtOne