A producer of a future object can notify it at a later time when the value is ready. Similarly, before the value that a Future references is available or computed, a consumer can block, poll or take some other action to be notified when the value is set or wait until the value is available.