경합 조건을 신경 쓰지 않고 살려면 인스턴스를 반환하기 전까지 독방에 가둬놓아야 합니다. 자바에서는 으레 synchronized 키워드로 잠금장치를 걸어둡니다(코드 4-2).
코드 4-2 스레드-안전을 위해 싱글톤을 동기화
package com.devchronicles.singleton; public class MySingleton { private static MySingleton instance; private MySingleton() {} public static synchronized MySingleton getInstance() { if (instance == null){ instance = new MySingleton(); } return instance; } }