std::promise and std::future are just concurrency tools offered by the C++ standard library. The C++ standard library also provides std::shared_future in addition to std::future. In this recipe, we had one information producer and one information consumer, but what if we have more consumers? std::shared_future allows multiple threads to wait for the same information (coming from std::promise).