
A. 싱글턴, 명령어 재정렬p. 257CPU 명령이 재정렬되면 IdGenerator 클래스의 객체가 new 예약어를 통해 instance 멤버 변수가 지정된 후, 초기화가 이루어지기 전에 다른 스레드에서 이 객체를 사용하려고 할 수 있다. 이 문제를 해결하려면 volatile 키워드를 인스턴스 멤버 변수에 추가하여 명령어 재정렬을 방지하면 된다. 명령어 재정렬과 싱글턴의 안전한 초기화 1. 문제 제기: 멀티스레드 환경에서의 싱글턴 초기화 문제 싱글턴 패턴은 애플리케이션 전체에서 인스턴스를 하나만 유지해야 할 때 사용된다.하지만 멀티스레드 환경에서는 인스턴스를 생성하는 과정에서 예상치 못한 문제가 발생할 수 있다.대표적인 예는 다음과 같다public class Singleton { private st..