April 2019
Intermediate to advanced
646 pages
16h 48m
English
The Future class instances returned by the Executor.submit() method are conceptually very close to the coroutines used in asynchronous programming. This is why we can use executors to make a hybrid between cooperative multitasking and multiprocessing or multithreading.
The core of this workaround is the BaseEventLoop.run_in_executor(executor, func, *args) method of the event loop class. It allows you to schedule the execution of the func function in the process or thread pool represented by the executor argument. The most important thing about that method is that it returns a new awaitable (an object that can be awaited with the await statement). So, thanks to this, you can execute a blocking function that ...