cv selection

일반 mutex라면 condition_variable, 다른 lock이면 any를 고려한다

두 타입은 “조건 대기”라는 목적은 같지만 받을 수 있는 lock 종류와 비용이 다릅니다.

std::condition_variable
대상 lock std::unique_lock<std::mutex>와 함께 씁니다.
장점 일반적인 생산자-소비자 패턴에서 가장 단순하고 효율적입니다.
기본 선택 특별한 이유가 없다면 이 타입으로 시작합니다.
std::condition_variable_any
대상 lock 사용자 정의 lock, shared_mutex 계열 등 lockable 객체를 받을 수 있습니다.
비용 유연한 대신 일반 condition_variable보다 오버헤드가 있을 수 있습니다.
사용 기준 표준 mutex로 표현하기 어려운 lock 정책이 있을 때 선택합니다.