결과 채널

비동기는 작업 실행과 결과 수신을 분리한다

std::future는 값, 예외, 완료 상태가 지나가는 단방향 채널입니다. 시작 방식은 달라도 결과를 기다리는 쪽의 모델은 같습니다.

결과가 이동하는 네 단계

future 흐름
launch 작업 시작

async, 스레드, 작업 큐 중 하나가 호출 가능한 객체를 실행합니다.

store 결과 저장

반환값 또는 예외가 공유 상태에 저장되고 future와 연결됩니다.

wait 준비 대기

wait는 완료만 기다리고, get은 완료 후 값을 꺼냅니다.

consume 한 번 소비

일반 future의 결과는 한 번 꺼내는 소유 모델로 이해합니다.