다음을 통해 공유


condition_variable::wait_for 메서드

스레드를 차단 하 고 이후의 스레드는 차단 되는 시간 간격을 설정 합니다.

template<
   class Rep,
   class Period
>
cv_status wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time
);
template<
   class Rep,
   class Period,
   class Predicate
>
bool wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time,
   PredicatePred
);

매개 변수

  • Lck
    unique_lock<mutex> 개체

  • Rel_time
    A chrono::duration 스레드를 하기 전에 시간을 지정 하는 개체를 활성화 합니다.

  • Pred
    반환 되는 모든 식 true 또는 false.

반환 값

첫 번째 메서드를 반환 합니다. cv_status::timeout 대기 시 종료 되는 경우 Rel_time 경과 되었습니다.그렇지 않으면 이 메서드는 cv_status::no_timeout을 반환합니다.

값을 반환 하는 두 번째 방법은 Pred.

설명

첫 번째 메서드는 차단 될 때까지 condition_variable 개체를 호출 하 여 신호입니다 notify_one 또는 notify_all 까지 시간 간격 또는 Rel_time 경과 되었습니다.이 또한 spuriously 깨울 수 있습니다.

두 번째 방법은 효과적으로 다음 코드를 실행합니다.

while(!Pred())
   if(wait_for(Lck, Rel_time) == cv_status::timeout)
      return Pred();
return true;

요구 사항

헤더: condition_variable

네임 스페이스: std

참고 항목

참조

condition_variable 클래스

<condition_variable>