asyncio – Multithreading without Threads
The previous chapter showed us how to track our application performance. In this chapter, we will use asynchronous programming to switch between functions whenever we have to wait for input/output (I/O) operations. This effectively fakes the effects of multiple threads or processes without introducing the overhead that comes with those solutions. In the next chapter, we will also cover multiple threads and processes for the cases where I/O is not your bottleneck or where asyncio
is not an option.
Whenever you are dealing with external resources such as reading/writing files, interacting with APIs or databases, and other I/O operations, you can achieve great benefits from using asyncio
. Where normally a single stalling remote connection can make your entire process hang, with asyncio,
it will simply switch to a different part of your code.
This chapter will explain how asynchronous functions can be used in Python and how...