std::async
실행호출 시점 또는 launch 정책이 정한다.
값반환값과 예외가 자동으로 저장된다.
쓸 때함수 하나를 바로 비동기로 맡길 때.
세 도구 모두 결과는 future로 받지만, 실행 시작과 결과 확정의 책임이 다릅니다.
set_value 또는 set_exception을 직접 호출한다.set_value 또는 set_exception으로 직접 확정한다.
판단 순서: 실행까지 맡기면 async, 값만 나중에 넣으면 promise, 실행 위치를 직접 제어하면 packaged_task입니다.