Futures and promises are a way of dealing with asynchronous events in a multi-threaded environment.
A promise is used by the producer of the operation, and the future is used by the consumer. The producer writes a value to the promise. A future is used to read back the value, which can be done from a different thread (e.g. asynchronously).
The main problem with the C++ implementation of futures and promises is that you cannot block on more than one future at a time. This is called a lack of being able to compose futures. If you had many futures, and you didn’t know if what order they would return, you cannot do a single block on all of them. The best you can do it poll them individually in a loop, burning up processor power.
- Dependency Injection
- Passing A C++ Member Function To A C Callback
- Consistent Overhead Byte Stuffing (COBS)
- How To Change The IO Scheduling Class And Priority In Linux