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
반응형

'Program Language > C & C++' 카테고리의 다른 글

[C++] std::chrono로 시간 측정하기  (0) 2022.01.21
[C++] std::list 정렬하기  (0) 2022.01.21
[C++] 함수 delete  (0) 2022.01.17
[C++] static 멤버 초기화  (0) 2022.01.17
[C++] initializer-list 생성자  (0) 2022.01.14