Share via


future 클래스

비동기 반환 개체를 설명합니다.

구문

template <class Ty>
class future;

설명

각 표준 비동기 공급자는 이 템플릿의 인스턴스화 형식이 포함된 개체를 반환합니다. 개체는 future 연결된 비동기 공급자에 대한 유일한 액세스를 제공합니다. 동일한 비동기 공급자와 연결된 여러 비동기 반환 개체가 필요한 경우 개체를 future 개체에 shared_future 복사합니다.

멤버

공용 생성자

속성 설명
future future 개체를 생성합니다.

공용 메서드

이름 설명
get 연결된 비동기 상태에 저장된 결과를 검색합니다.
share 개체를 shared_future로 변환합니다.
valid 개체가 비어 있지 않은지 여부를 지정합니다.
wait 연결된 비동기 상태가 준비로 설정될 때까지 현재 스레드를 차단합니다.
wait_for 연결된 비동기 상태가 준비로 설정되거나 지정된 시간이 경과할 때까지 차단합니다.
wait_until 연결된 비동기 상태가 ready로 설정되거나 지정된 시점이 될 때까지 차단합니다.

Public 연산자

이름 설명
future::operator= 지정된 개체에서 연결된 비동기 상태를 전송합니다.

요구 사항

헤더<future>:

네임스페이스:std

생성자

future 개체를 생성합니다.

future() noexcept;
future(future&& Other) noexcept;

매개 변수

Other
future 개체입니다.

설명

첫 번째 생성자는 연결된 비동기 상태가 없는 future 개체를 구성합니다.

두 번째 생성자는 개체를 future 생성하고 연결된 비동기 상태를 Other에서 전송합니다. 다른 항목에는 더 이상 연결된 비동기 상태가 없습니다.

get

연결된 비동기 상태에 저장된 결과를 검색합니다.

Ty get();

Return Value

결과가 예외이면 메서드는 예외를 다시 throw합니다. 그렇지 않으면 결과가 반환됩니다.

설명

이 메서드는 결과를 검색하기 전에 연결된 비동기 상태가 ready로 설정될 때까지 현재 스레드를 차단합니다.

부분 특수화 future<Ty&>의 경우 저장되는 값은 실제로는 반환 값으로 비동기 공급자에 전달된 개체에 대한 참조입니다.

특수화 future<void>에 대해서는 저장된 값이 없으므로 메서드는 void를 반환합니다.

다른 특수화에서 메서드는 저장된 값에서 반환 값을 이동합니다. 따라서 이 메서드를 한 번만 호출합니다.

operator=

지정된 개체에서 연결된 비동기 상태를 전송합니다.

future& operator=(future&& Right) noexcept;

매개 변수

Right
future 개체입니다.

Return Value

*this

설명

전송 후 Right 에는 더 이상 연결된 비동기 상태가 없습니다.

share

개체를 개체로 shared_future 변환합니다.

shared_future<Ty> share();

Return Value

shared_future(move(*this))

valid

개체에 연결된 비동기 상태가 있는지를 지정합니다.

bool valid() noexcept;

Return Value

개체가 연결된 비동기 상태이면 true이고, 그렇지 않으면 false입니다.

wait

연결된 비동기 상태가 준비로 설정될 때까지 현재 스레드를 차단합니다.

void wait() const;

설명

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

wait_for

연결된 비동기 상태가 준비로 설정되거나 지정된 시간 간격이 경과할 때까지 현재 스레드를 차단합니다.

template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;

매개 변수

Rel_time
chrono::duration 스레드가 차단하는 최대 시간 간격을 지정하는 개체입니다.

Return Value

반환 이유를 나타내는 A future_status 입니다.

설명

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

wait_until

연결된 비동기 상태가 ready가 되거나 지정된 시점이 지날 때까지 현재 스레드를 차단합니다.

template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;

매개 변수

Abs_time
time_point 스레드가 차단을 해제할 수 있는 시간을 지정하는 개체입니다.

Return Value

반환 이유를 나타내는 A future_status 입니다.

설명

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

참고 항목

헤더 파일 참조
<future>