조건 재확인 람다
wait(lock, []{ ... }) 형태는 가짜 깨어나기를 안전하게
처리합니다.
대기자는 뮤텍스를 잡고 조건을 확인한 뒤, 거짓이면
wait 중에 뮤텍스를 풀고 알림을 기다립니다.
std::unique_lock은 wait 내부에서 잠금
해제와 재잠금을 원자적인 대기 절차로 묶습니다.
wait(lock, []{ ... }) 형태는 가짜 깨어나기를 안전하게
처리합니다.
하나의 데이터 조각을 하나의 소비자가 가져가는 큐에 적합합니다.
생산 완료 플래그처럼 여러 대기자가 같은 사실을 알아야 할 때 사용합니다.
wait_for와 wait_until은 무한 대기가
곤란한 작업에서 응답성을 유지합니다.
대기 조건 조건 변수는 알림 자체를 저장하지 않습니다. 공유 상태와 predicate를 기준으로 기다리고, 알림은 재검사를 시작하는 신호로 봅니다.