다음을 통해 공유


<condition_variable>

클래스 정의 condition_variablecondition_variable_any 조건을 true를 대기 하는 개체를 만드는 데 사용 됩니다.

이 헤더와 함께 다른 ConcRT 메커니즘 수 있도록 동시성 런타임 (ConcRT)를 사용 합니다.Concrt에 대 한 자세한 내용은 동시성 런타임.

#include <condition_variable>

[!참고]

사용 하 여 컴파일되는 코드에 /clr 또는 /clr:pure,이 헤더를 차단 합니다.

Hh874761.collapse_all(ko-kr,VS.110).gif설명

또한 조건 변수를 사용 해야 하는 대기 코드는 mutex.호출 스레드를 잠가야 합니다의 mutex 조건 변수를 대기 하는 함수를 호출 하기 전에 합니다.mutex 호출된 된 함수가 반환 될 때 다음 잠겨 있습니다.mutex 의 조건이 true 될 스레드를 기다리는 동안 잠겨 있지 않습니다.조건 변수를 대기 하는 각 스레드는 되도록 하면 예기치 않은 결과가 동일한 사용 해야 mutex 개체입니다.

개체 형식의 condition_variable_any 모든 종류의 뮤텍스를 사용할 수 있습니다.사용 되는 뮤텍스 형식이 제공 되지 않은 있는 try_lock 메서드.개체 형식의 condition_variable 뮤텍스 형식에 사용할 수 있습니다 unique_lock<mutex>.이 형식의 개체 형식의 개체 보다 더 빠르게 수 condition_variable_any<unique_lock<mutex>>.

에 대 한 이벤트를 대기할 먼저 뮤텍스를 잠그고 다음 중 하나를 호출을 wait 조건 변수 메서드.wait 다른 스레드는 조건 변수를 알릴 때까지 블록을 호출 합니다.

의사 웨이크업 알림 조건 변수 없이 님의 차단을 해제할 수에 대 한 대기 중인 스레드의 해당 되는 경우에 발생 합니다.코드 대기 함수에서 반환 될 때 이러한 의사 웨이크업 인식, 조건을 true 될 때까지 대기 하는 코드 명시적으로 해당 조건을 확인 해야 합니다.이것은 일반적으로 루프를 사용 하 여 수행 합니다. 사용 하면 wait(unique_lock<mutex>& lock, Predicate pred) 이 루프를 수행할 수 있습니다.

while (condition is false)
    wait for condition variable;

condition_variable_anycondition_variable 클래스에는 각 조건에 대해 대기 하는 세 가지 방법 있습니다.

  • wait제한 시간 동안 대기합니다.

  • wait_until지정 된 때까지 기다립니다 time.

  • wait_for대기에 대 한 지정 된 time interval.

이러한 메서드의 각 오버 로드 된 두 버전 있습니다.하나만 기다린 spuriously 깨울 수 있습니다.다른 조건자를 정의 추가 템플릿 인수를 사용 합니다.조건자가 될 때까지 메서드가 반환 하지 않는 true.

각 클래스에는 해당 조건을 조건 변수를 알리는 데는 두 가지 방법 있습니다 true.

  • notify_one조건 변수를 대기 중인 스레드 중 하나를 활성화 합니다.

  • notify_all모든 조건 변수를 대기 중인 스레드를 깨웁니다.

참고 항목

참조

condition_variable 클래스

condition_variable_any 클래스

cv_status 열거형

기타 리소스

헤더 파일