조건 변수는 공유 상태가 원하는 조건을 만족할 때까지 실행 흐름이 기다리도록 돕는 동기화 수단이다.
원리
보통 뮤텍스와 함께 사용한다. 대기 연산은 잠금을 놓고 기다린 뒤 다시 획득하며, 깨어난 흐름은 공유 상태의 조건을 재검사한다.
예시
생산자·소비자 큐에서 소비자는 큐가 비어 있으면 기다리고 생산자가 항목을 넣으면 알림을 보낼 수 있다.
주의할 점
알림 자체를 데이터나 영구 저장된 사건으로 취급하지 않는다. 깨어났어도 조건이 다시 바뀌었을 수 있으므로 while로 조건을 재검사하는 패턴이 중요하다.