shared_future 클래스
비동기 반환 개체를 설명합니다. future 개체와는 달리 shared_future
개체의 경우 원하는 수만큼 비동기 공급자에 연결할 수 있습니다.
구문
template <class Ty>
class shared_future;
설명
비어 있는 개체의 소멸자와 다른 operator=
valid
메서드를 shared_future
호출하지 마세요.
shared_future
개체가 동기화되지 않습니다. 여러 스레드에서 같은 개체에 대해 메서드를 호출하면 결과를 예측할 수 없는 데이터 경쟁이 발생합니다.
멤버
공용 생성자
속성 | 설명 |
---|---|
shared_future | shared_future 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
get | 연결된 비동기 상태에 저장된 결과를 검색합니다. |
유효한 | 개체가 비어 있지 않은지 여부를 지정합니다. |
wait | 연결된 비동기 상태가 준비로 설정될 때까지 현재 스레드를 차단합니다. |
wait_for | 연결된 비동기 상태가 준비로 설정되거나 지정된 시간이 경과할 때까지 차단합니다. |
wait_until | 연결된 비동기 상태가 ready로 설정되거나 지정된 시점이 될 때까지 차단합니다. |
Public 연산자
속성 | 설명 |
---|---|
shared_future::operator= | 새 연결된 비동기 상태를 할당합니다. |
요구 사항
헤더:<future>
네임스페이스: std
shared_future::get
연결된 비동기 상태에 저장된 결과를 검색합니다.
const Ty& get() const;
Ty& get() const;
void get() const;
설명
결과가 예외이면 메서드는 예외를 다시 throw합니다. 그렇지 않으면 결과가 반환됩니다.
이 메서드는 결과를 검색하기 전에 연결된 비동기 상태가 ready로 설정될 때까지 현재 스레드를 차단합니다.
부분 특수화 shared_future<Ty&>
의 경우 저장되는 값은 실제로는 반환 값으로 비동기 공급자에 전달된 개체에 대한 참조입니다.
특수화 shared_future<void>
에 대해서는 저장된 값이 없으므로 메서드는 void
를 반환합니다.
shared_future::operator=
지정된 개체에서 연결된 비동기 상태를 전송합니다.
shared_future& operator=(shared_future&& Right) noexcept;
shared_future& operator=(const shared_future& Right);
매개 변수
Right
shared_future
개체입니다.
Return Value
*this
설명
첫 번째 연산 자의 경우 작업 후 Right 에 연결된 비동기 상태가 더 이상 없습니다.
두 번째 메서드 의 경우 Right 는 연결된 비동기 상태를 유지 관리합니다.
shared_future::shared_future 생성자
shared_future
개체를 생성합니다.
shared_future() noexcept;
shared_future(future<Ty>&& Right) noexcept;
shared_future(shared_future&& Right) noexcept;
shared_future(const shared_future& Right);
매개 변수
Right
future 또는 shared_future
개체입니다.
설명
첫 번째 생성자는 연결된 비동기 상태가 없는 shared_future
개체를 생성합니다.
두 번째 및 세 번째 생성자는 개체를 shared_future
생성하고 Right에서 연결된 비동기 상태를 전송합니다. 오른쪽 에 연결된 비동기 상태가 더 이상 없습니다.
네 번째 생성자는 Right와 shared_future
연결된 비동기 상태가 동일한 개체를 생성합니다.
shared_future::valid
개체에 연결된 비동기 상태가 있는지를 지정합니다.
bool valid() noexcept;
Return Value
개체가 연결된 비동기 상태이면 true
이고, 그렇지 않으면 false
입니다.
shared_future::wait
연결된 비동기 상태가 ready로 설정될 때까지 현재 스레드를 차단합니다.
void wait() const;
설명
연결된 비동기 상태는 해당 비동기 공급자가 반환 값을 저장했거나 예외를 저장한 경우에만 준비입니다.
shared_future::wait_for
연결된 비동기 상태가 ready로 설정되거나 지정된 시간이 경과할 때까지 차단합니다.
template <class Rep, class Period>
future_status wait_for(
const chrono::duration<Rep, Period>& Rel_time) const;
매개 변수
Rel_time
스레드가 차단되는 최대 시간 간격을 지정하는 chrono::duration 개체입니다.
Return Value
반환 이유를 나타내는 future_status입니다.
설명
연결된 비동기 상태는 해당 비동기 공급자가 반환 값을 저장했거나 예외를 저장한 경우에만 ready로 설정됩니다.
shared_future::wait_until
연결된 비동기 상태가 ready가 되거나 지정된 시점이 지날 때까지 현재 스레드를 차단합니다.
template <class Clock, class Duration>
future_status wait_until(
const chrono::time_point<Clock, Duration>& Abs_time) const;
매개 변수
Abs_time
스레드 차단을 해제할 수 있는 시간을 지정하는 chrono::time_point 개체입니다.
Return Value
반환 이유를 나타내는 future_status입니다.
설명
연결된 비동기 상태는 해당 비동기 공급자가 반환 값을 저장했거나 예외를 저장한 경우에만 준비입니다.