본문 바로가기

Design Pattern

[Design Pattern] Thread-Safe Singleton

 

  위의 보이는 것은 일반적으로 사용하는 싱클턴의 방법이다. 하지만 이 방법은 

Thread-Safe 하지 않다. 그래서 다음과 같이 바꾸었다.


 

   이런식으로 하면 Thread-Safe 하게 된다고 할 수 있다. 하지만 이 방법 역시 무조건 100%

확실하다고 할 순 없다. Debug모드에서는 안전하지만 만일 Release모드일때 컴파일러가

스스로 최적화를 해버려 Lock에 동시 접근을 하는 경우가 극히 드물게 나타난다는 전설을...


 위의 코드를 테스트는 엄청난 귀찮음이 엄습하는 관계로. 


 

 이렇게 Thread 1개 만들고, 100만번 돌려보는 것만으로 종료해버렸다.