조건 변수 (Condition Variable)

조건 변수 (Condition Variable) 조건 변수 (Condition Variable) 는 멀티스레드 환경에서 스레드가 특정 조건이 충족될 때까지 Busy-wait 없이 대기하도록 하는 동기화 메커니즘이다. 반드시 뮤텍스와 함께 사용하여 조건 검사·변경의 원자성을 보장하며, 주요 연산은 wait()(대기), signal()/notify_one()(하나 깨움), broadcast()/notify_all()(모두 깨움) 이다. 대부분 Mesa-style 구현을 따르므로 깨어난 뒤 조건을 while 루프로 재검사해야 하며, 유령 깨움과 신호 손실 방지를 위해 상태 변경 후 락을 잡은 채 신호를 보내야 한다. 생산자 - 소비자, 이벤트 처리, 흐름 제어 등에서 필수적으로 활용되며, POSIX, C++, Java, Go 등 다양한 플랫폼에서 지원된다. ...

October 4, 2024 · 68 min · Me