Program Language/C & C++
[C++] unique_lock, lock_guard
야곰야곰+책벌레
2022. 1. 19. 11:31
728x90
반응형
unique_lock과 lock_guard의 차이점은 lock을 걸 수 있는 시점이다. 둘 다 소멸 시점에 lock이 걸려 있다면 unlock을 수행한다. lock_guarud는 lock과 unlock 사이에서 lock과 unlock을 할 수 없지만 unique_lock은 소멸하기 전에 unlock과 lock을 걸 수 있다.
unique_lock은 lock_guard에 기능이 추가된 버전이라고 생각하면 된다.
이러한 lock 유틸리티 객체를 사용하는 것은 프로그래머가 unlock 코드에 신경 쓰지 않아도 되게 해 준다.
아래와 같이 사용하면 된다.
std::mutex m_mutex;
std::lock_guard<std::mutex> lock(m_mutex);
std::unique_lock<std::mutex> lock(m_mutex);
728x90
반응형