Futures are asynchronous function calls. The function starts
immediately in a separate thread but the construction of the future
returns immediately as well. The future is used as a handle to this
function call and can be used later on to retrieve the result of the
call.