C++ · FUTURE
promise와 future로 결과 전달하기
std::promise는 한 스레드가 나중에 값을 제공하겠다는 약속이고, std::future는 다른 스레드가 그 값을 기다리는 수신 창구입니다.
결과 전달 흐름
promise
promise 생성
결과를 나중에 채울 객체를 만듭니다.
get_future
결과를 기다릴 future를 promise에서 꺼냅니다.
worker thread
작업 스레드가 promise를 받아 계산을 수행합니다.
set_value
성공 결과를 future 쪽으로 전달합니다.
future.get
대기 중인 스레드가 값을 받거나 예외를 받습니다.
promise
→
future
→
작업
→
값 설정
→
get
전달 가능한 것
result
값
set_value로 계산 결과를 전달합니다.
예외
set_exception으로 실패도 future에 전달할 수 있습니다.
동기화
get은 값이 준비될 때까지 대기합니다.
일회성
future.get은 일반적으로 한 번만 결과를 꺼냅니다.