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