[C++ Thread] promise , future 작업 기반 비동기 프로그래밍

2024. 2. 27. 17:12개발공부/C, C++

promise , future 를 정리한 글

https://ansohxxn.github.io/cpp/chapter19-5/

 

C++ Chapter 19.5 : 작업 기반 비동기 프로그래밍 async, future, promise

인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀 🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!

ansohxxn.github.io

https://narakit.tistory.com/140

 

[C++ Thread] 약속과 미래 객체, std::promise / std::future

C++11에 도입된 std::promise와 std::future 객체를 알아본다. 약속 객체 (std::promise) 약속 객체는 주로 비동기적으로 실행되는 다른 쓰레드로 부터 계산된 값이나 예외를 저장할 수 있는 공간을 가지고

narakit.tistory.com

 

 

 

위와 같이 여러 쓰레드에서  실행중인 하나의 객체(장치)에 대해 여러 명령을 시킬때 기존에 실행 시키던 동작은 유지하면서 기존 동작이 종료가 될 때 명령을 내렸던 여러 쓰레드에 동시에 return 결과 를 보내기 위해 찾던 중에 
Promise , future을 찾게 되었다.

 

그리고 Promise와 future는 한번만 사용되게 설계되어있어 
만약 promisedhk future을 reset 시키고 싶은면 아래와 같이

my_promise = std::promise<int>();
my_future = my_promise .get_future();


 재할당을 하여 사용해야한다.

 

https://stackoverflow.com/questions/35173835/how-do-i-clear-stdpromise

 

How do I "clear" std::promise?

I have a program, which should in cycle launch 8 threads, which will return a value using std::promise. So I think I need to create a vector of 8 promise objects, get their futures, and use these

stackoverflow.com