728x90
Promise
-
C++ future(promise, async, packaged_task)C++/C++ 멀티스레드 2022. 10. 15. 13:00
오늘은 C++의 future에 대해서 알아보겠습니다. 우리는 일반적으로 코드가 실행된다고 하면, 순차적으로 실행되는 것을 생각합니다. 1~10번까지의 코드가 있다면, 1번이 실행되고 2번이 2번이 실행되고 3번이 이렇게 말입니다. 그런데 만약 1번 명령문을 수행하는데에 아주 오랜 시간이 걸리면 어떻게 될까요? 2~10번코드는 1번 명령문이 완료되기를 기다리게 됩니다. 아주 오랜시간동안요. 하지만, 1번 명령문이 나머지 2~10번 코드에 영향을 미치는 코드가 아니라면? 1번이 반환하는 결과가 당장 필요하지 않다면? 그럴 때는 1번 명령을 어떤 스레드에게 맡겨놓고, 1번 명령이 완료되기 전에, 나머지 2~10번을 수행할 수 있을것입니다. 그리고, 이 때 1번 명령의 결과값을 저~기 7이나 8번즈음에서 받기 ..