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