std::future는 값, 예외, 완료 상태가 지나가는 단방향
채널입니다. 시작 방식은 달라도 결과를 기다리는 쪽의 모델은 같습니다.
async, 스레드, 작업 큐 중 하나가 호출 가능한 객체를
실행합니다.
반환값 또는 예외가 공유 상태에 저장되고 future와 연결됩니다.
wait는 완료만 기다리고, get은 완료 후
값을 꺼냅니다.
일반 future의 결과는 한 번 꺼내는 소유 모델로
이해합니다.