- std::future - cppreference. com
The class template std::future provides a mechanism to access the result of asynchronous operations: An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide a std::future object to the creator of that asynchronous operation The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from the std
- C++: Use future. get with timeout and without blocking
But you might want to have a queue of completed jobs to check, instead of a single future This queue would only be consumed by your main thread and can be implemented with a non-blocking thread-safe "try_get" call to get next completed jobs As others commented, you may want to wrap your time-saving logic in a job dispatcher class or similar
- std::future lt;T gt;::share - cppreference. com
Transfers the shared state of *this, if any, to a std::shared_future object Multiple std::shared_future objects may reference the same shared state, which is not possible with std::future After calling share on a std::future, valid() == false
|