Producer thread
- 작업 실행계산, I/O, 긴 처리 등을 별도 스레드에서 수행한다.
- 결과 저장promise.set_value(result)
- 예외 전달promise.set_exception(...)
생산자 스레드는 결과를 채우고, 소비자 스레드는 같은 공유 상태에서 결과가 준비될 때까지 기다린다.
| 상황 | future 동작 | 주의점 |
|---|---|---|
| 값 준비 전 | get()이 기다림 | UI/메인 스레드에서 무작정 기다리면 멈춘 것처럼 보인다 |
| 예외 저장 | get()에서 다시 던짐 | 생산자 쪽 오류를 소비자 쪽에서 처리해야 한다 |
| 결과 재사용 | shared_future 필요 | 일반 future는 단일 소비 모델이다 |