다음을 통해 공유


condition_variable::wait_until 메서드

스레드를 차단 하 고 최대 지점에서 스레드가 차단 시간에 설정 됩니다.

template<
   class Clock,
   class Duration
>
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time
);
template<
   class Clock,
   class Duration,
   class Predicate
>
bool wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time,
   Predicate Pred
);
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time
);
template<class Predicate>
bool wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time,
   Predicate Pred
);

매개 변수

  • Lck
    unique_lock<mutex> 개체

  • Abs_time
    chrono::time_point 개체

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

반환 값

반환 하는 메서드는 cv_status 입력 반환 cv_status::timeout 대기 시 종료 되는 경우 Abs_time 경과.그렇지 않으면 메서드 반환 cv_status::no_timeout.

반환 하는 메서드는 bool 값을 반환 합니다. Pred.

설명

첫 번째 메서드는 차단 될 때까지 condition_variable 개체를 호출 하 여 신호는 notify_one 또는 notify_all 또는 Abs_time.이 또한 spuriously 깨울 수 있습니다.

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

while(!Pred())
   if(wait_until(Lck, Abs_time) == cv_status::timeout)
      return Pred();
return true;

세 번째와 네 번째 메서드 형식의 개체에 대 한 포인터를 사용 xtime 교체 하는 chrono::time_point 개체입니다.xtime 개체 신호 대기 시간을 최대 크기를 지정 합니다.

요구 사항

헤더: condition_variable

네임 스페이스: std

참고 항목

참조

condition_variable 클래스

<condition_variable>