Python Asyncio Module
We can think of the asyncio module as Python’s way of allowing us to write code to run tasks concurrently. It uses the newly introduced async and await keywords. It can help us improve performance for many operations that might be IO bound, such as web servers, databases, and of course, communication toward devices over the network. The asyncio module is the foundation of popular new frameworks, such as FastAPI (https://fastapi.tiangolo.com/).
However, it is important to point out that asyncio is neither multi-processing nor multi-threaded. It is designed to be single-threaded with a single process. Python asyncio uses cooperative multiprocessing to give the feeling of concurrency.
Unlike threading, Python controls the process from end to end instead of passing the threading process to the operating system. This lets Python know when the task is started and completed, thus coordinating between them. When we can ‘pause’ part of the code while...