Chris Angelico <ros...@gmail.com>: > your throughput is defined by your database.
Asyncio is not (primarily) a throughput-optimization method. Sometimes it is a resource consumption optimization method as the context objects are lighter-weight than full-blown threads. Mostly asyncio is a way to deal with anything you throw at it. What do you do if you need to exit the application immediately and your threads are stuck in a 2-minute timeout? With asyncio, you have full control of the situation. > It's the same with all sorts of other resources. What happens if your > error logging blocks? Do you code everything, *absolutely everything*, > around callbacks? Because ultimately, it adds piles and piles of > complexity and inefficiency, and it still comes back to the same > thing: stuff can make other stuff wait. It would be interesting to have an OS or a programming language where no function returns a value. Linux, in particular, suffers from the deeply-ingrained system assumption that all file access is synchronous. However, your protestations seem like a straw man to me. I have really been practicing event-driven programming for decades. It is fraught with frustrating complications but they feel like fresh air compared with the what-now moments I've had to deal with doing multithreaded programming. Marko -- https://mail.python.org/mailman/listinfo/python-list