락 선택 기준

락은 보호 범위와 해제 방식 선택

공유 데이터 접근을 막는 목적은 같지만, 단순 보호, 지연 잠금, 읽기 공유, 시간 제한처럼 필요한 제어 수준이 다릅니다.

상황별 선택표

mutex family
단순 임계 영역

std::mutexstd::lock_guard로 스코프 종료 시 자동 해제합니다.

대기 중 해제 필요

std::unique_lock은 조건 변수와 지연 잠금에 어울립니다.

읽기 많고 쓰기 적음

std::shared_mutex로 읽기는 공유하고 쓰기는 단독 처리합니다.

여러 뮤텍스

std::lockdefer_lock으로 순환 대기 위험을 줄입니다.