다음을 통해 공유


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에서 연결된 비동기 상태를 전송합니다. 오른쪽 에 연결된 비동기 상태가 더 이상 없습니다.

네 번째 생성자는 Rightshared_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입니다.

설명

연결된 비동기 상태는 해당 비동기 공급자가 반환 값을 저장했거나 예외를 저장한 경우에만 준비입니다.

참고 항목

헤더 파일 참조
<future>