A Future object represents an operation that is currently in progress, or has recently completed. Library functions that perform asynchronous operations would use Future objects to allow calling programs to control or wait for those operations to complete.