1. 싱글톤 패턴??인스턴스를 오직 한 개만 제공하기 위한 객체 생성을 위한 디자인 패턴이다. 2. 멀티쓰레드 환경에서의 동시성 문제 멀티쓰레드 환경에서는 경합 조건(race condition) 을 고려해야 한다. 특히 싱글톤의 경우에는 경합 조건에 의해 객체가 두 개 생성될 수 있다. 이를 방지하기 위해서는 동기화 메커니즘을 사용해야 하며 모니터(monitor) 기반의 synchronized 키워드를 사용해 임계 영역(critical section) 에 대해 접근을 제어할 수 있다. synchronized 을 사용 시에는 성능을 위해 임계 영역 범위를 최소화하는 것이 중요하다. double checked locking 은 멀티스레드 환경에서 객체 생성을 최적화하는 데 사용되는 소프트웨어 디자인 패턴이다..