Done/C++_Python

[C++] Mutex 누구야?

weasel7 2023. 8. 19. 00:59
728x90

- 여러 thread를 동시에 접근할 수 있는 공유자원의 소유권을 결정하는 모델이다. 우리가 Thread를 여러개 사용하고 싶을 때 자원을 공유하게 될 수도 있다 

이때 필요한 것이 Mutex, semaphore 등이 있겠지만 동시에 접근할 수 있는 공유자원의 소유권을 결정하는 모델은 mutex이다.

 

c++ 11 version ~ 

- lock_guard : 하나의 scope (ex, 함수) 가 끝날 때 같이 해제됨, copy & move 불가, 생성자와 소멸자만 정의 되어있음

- unique_lock : move 가능 , 하나의 resource 로 보고 함수의 파라미터나 return으로 볼 수 있음

 

c++ 17 version ~

- scoped_lock : lock_guard 의 순서를 알 수 없을 때 scoped_lock을 이용하여 deadlock 상황을 피할 수 있음

728x90