패턴 (1) 썸네일형 리스트형 (c++)Singleton pattern 클래스를 멀티쓰레드에서 안전하게 만드는 방법 프로그램을 구성하다보면, 전역적으로 단일 인스턴스를 가져야 하는 모듈을 만들어야 하는 경우가 분명 있다. 이럴때 싱글톤(Singleton) 패턴으로 클래스를 구성하게 되는데..문제는 이 패턴이 멀티쓰레드에서 안전하지 않다는 것이다. 아래는 일반적인 싱글톤 패턴의 코드이다. 문제는 최초에 두개의 Thread가 연속으로 GetInstance()를 호출 했을때에 instance의 null체크에서 두 thread가 모두 null이 될 가능성이 있다는 것이다.이것을 해결하기위해서는 몇가지 솔루션이 있다. 1. criticalsection 사용 동시에 두 thread의 접근을 방지하여 안전성을 확보하자는 것인데, 문제는 criticalsection이 성능면에서는 별로 좋지 않다고 한다. 2. 최초에 getinsta.. 이전 1 다음