[C++11 Overview] mutex

Book Review 2013. 3. 11. 14:34

future 에 이어서 소개하고 있는 부분입니다.


아무래도 멀티 스레드니 병렬 처리니 하는 부분들이 나오면 필수적으로 따라 붙는 부분이


데이터의 접근에 대한 안전 장치겠지요.


다음은 전역 선언된 int 변수 하나를 두개의 스레드에서 증가/감소 하는 코드입니다.

이전에도 프로그래머들이 종종 만들어 쓰는 auto lock 과 유사한 모습입니다.


c++11 의 mutex 는 mutex , timed_mutex , recursive_mutex , recursive_timed_mutex 4 종이 제공되고 있고,

이름상에서 나타나듯이 쓰임새가 차이가 납니다.

재귀적인 lock 작업에 non-recursive mutex 를 사용하면 미정의 동작을 하게 된다고 하네요.

ps. 위 코드에서와 같은 간단한 변수의 증감은 mutex 보다는 atomic 을 사용하는 것이 더 효율적입니다.


: