<future>
표준 헤더 <미래를> 포함하여 클래스 템플릿을 정의하고 함수를 별도의 스레드에서 실행하여 결과를 검색하는 작업을 간소화하는 템플릿을 지원합니다. 결과는 함수에서 반환되는 값 또는 함수에서 발생했지만 함수에 catch되지 않은 예외 중 하나입니다.
이 헤더는 동시성 런타임(ConcRT)을 사용하므로 다른 ConcRT 메커니즘과 함께 사용할 수 있습니다. ConcRT에 대한 자세한 내용은 동시성 런타임을 참조하세요.
구문
#include <future>
설명
참고 항목
/clr을 사용하여 컴파일되는 코드에서는 이 헤더가 차단됩니다.
비동기 공급자는 함수 호출의 결과를 저장합니다. 비동기 반환 개체는 함수 호출 결과를 검색하는 데 사용됩니다. 연결된 비동기 상태를 통해 비동기 공급자와 비동기 반환 개체 하나 이상 사이에서 통신할 수 있습니다.
프로그램에서는 연결된 비동기 상태 개체를 직접 만들지 않습니다. 프로그램에서는 필요할 때마다 비동기 공급자를 만들고 이를 기반으로 연결된 비동기 상태를 공급자와 공유하는 비동기 반환 개체를 만듭니다. 비동기 공급자와 비동기 반환 개체는 공유된 연결된 비동기 상태를 포함하는 개체를 관리합니다. 연결된 비동기 상태를 참조하는 마지막 개체가 해당 상태를 해제하면 연결된 비동기 상태를 포함하는 개체가 삭제됩니다.
연결된 비동기 상태가 없는 비동기 공급자 또는 비동기 반환 개체는 비어 있습니다.
연결된 비동기 상태는 해당 비동기 공급자가 반환 값을 저장했거나 예외를 저장한 경우에만 ready로 설정됩니다.
템플릿 함수 async
및 클래스 템플릿이며 promise
packaged_task
비동기 공급자입니다. 클래스 템플릿 및 future
shared_future
비동기 반환 개체를 설명합니다.
각 클래스 템플릿 promise
future
shared_future
에는 형식 void
에 대한 특수화와 참조로 값을 저장하고 검색하기 위한 부분 특수화가 있습니다. 이러한 특수화는 반환된 값을 저장 및 검색하는 함수의 시그니처와 의미 체계에만 있는 기본 템플릿과 다릅니다.
클래스 템플릿 future
은 shared_future
이전 버전과의 호환성을 위해 유지되는 한 가지 경우를 제외하고 소멸자에서 차단되지 않습니다. 즉, future
다른 모든 미래와 std::async
달리 작업 시작 시 마지막으로 shared_future
연결된 경우 소멸자가 차단됩니다. 즉, 작업이 완료되지 않은 경우 소멸자가 차단됩니다. 즉, 이 스레드가 아직 호출 .get()
되지 않았거나 .wait()
작업이 계속 실행 중이면 차단됩니다. 초안 표준의 std::async
설명에 다음과 같은 유용성 메모가 추가되었습니다. "[참고: std::async에서 가져온 미래를 로컬 범위 외부로 이동하면 미래를 사용하는 다른 코드는 미래의 소멸자가 공유 상태가 준비되도록 차단할 수 있다는 것을 알고 있어야 합니다.-end note]" 다른 모든 경우에는 future
및 shared_future
소멸자는 필수이며 차단되지 않도록 보장됩니다.
멤버
클래스
이름 | 설명 |
---|---|
future 클래스 | 비동기 반환 개체를 설명합니다. |
future_error 클래스 | future 개체를 관리하는 형식의 메서드에서 throw될 수 있는 예외 개체를 설명합니다. |
packaged_task 클래스 | 호출 시그니처 Ty(ArgTypes...) 가 포함된 호출 래퍼인 비동기 공급자를 설명합니다. 비동기 공급자의 연결된 비동기 상태에는 잠재적 결과와 함께 호출 가능 개체의 복사본이 포함됩니다. |
promise 클래스 | 비동기 공급자를 설명합니다. |
shared_future 클래스 | 비동기 반환 개체를 설명합니다. future 개체와는 달리 shared_future 개체의 경우 원하는 수만큼 비동기 공급자에 연결할 수 있습니다. |
구조
속성 | 설명 |
---|---|
is_error_code_enum 구조체 | future_errc 가 error_code 를 저장하는 데 적합함을 나타내는 특수화입니다. |
uses_allocator 구조체 | 항상 true인 특수화입니다. |
함수
속성 | 설명 |
---|---|
async | 비동기 공급자를 나타냅니다. |
future_category | future 개체와 연결된 오류의 특징을 결정하는 error_category 개체에 대한 참조를 반환합니다. |
make_error_code | future 오류의 특징을 결정하는 error_category 개체가 포함된 error_code 를 만듭니다. |
make_error_condition | future 오류의 특징을 결정하는 error_category 개체가 포함된 error_condition 를 만듭니다. |
swap | promise 개체 하나의 연결된 비동기 상태를 다른 개체의 상태와 교환합니다. |
열거형
속성 | 설명 |
---|---|
future_errc | future_error 클래스에서 보고한 오류에 대해 기호화된 이름을 제공합니다. |
future_status | timed wait 함수가 반환할 수 있는 이유에 대해 기호화된 이름을 제공합니다. |
발사 | 템플릿 함수 async 에 가능한 모드를 설명하는 비트 마스크 형식을 나타냅니다. |