Concurrent futures – high-level concurrent processing
The concurrent.futures module provides high-level concurrent processing using either threads or processes, while asynchronously returning data using future objects.
It provides an executor interface which exposes mainly two methods, which are as follows:
submit: Submits a callable to be executed asynchronously, returning afutureobject representing the execution of the callable.map: Maps a callable to a set of iterables, scheduling the execution asynchronously in thefutureobject. However, this method returns the results of processing directly instead of returning a list of futures.
There are two concrete implementations of the executor interface: ThreadPoolExecutor executes the callable in a pool of threads, and ProcessPoolExecutor does so in a pool of processes.
Here is a simple example of a future object that calculates the factorial of a set of integers asynchronously:
from concurrent.futures import ThreadPoolExecutor, as_completed...