Today I will give you the advantages and disadvantages of asyncio. To learn asynchronous IO, you must know coroutines and asynico. So what exactly is asyncio? How to use asyncio? Let me give you the answers one by one
Advantages
Exceptionally easy to use for asynchronous IO tasks
ProgrammingModel Easier and less burdensome:
Use asyncio to get an event loop
Then stuff things (coroutines) into this loop
The operating system sees It is still single-threaded, but from a macro perspective, what we see is "multiple concurrency" (every language is almost like this: implementing a multi-threaded model in user mode)
Disadvantages
The ecology is immature (although there is aio-libs), it would be great if libraries like requests also have corresponding implementations (the popularity must be high)
There is a premise: an App must be from front to back Asynchronous, which is burdensome for many historical legacy projects
Comparison with gevent + Python 2
Many projects are based on Python 2, and the effect of using gevent is obvious
The only worry is: gevent will have a lot of patches (hack standard library), and what we see is a black box, so we are inevitably worried
The efficiency of gevent is not necessarily better than asyncio + Async def is inefficient.
How to use
asyncio as our framework(I prefer what the standard library has), async def/await as Basic design methods
Use various libs in aio-libs (it must be asynchronous from beginning to end!)
I believe you have mastered the method after reading these cases, more exciting Please pay attention to other related articles on php Chinese website!
Related reading:
How to deal with CSS web page misalignment
How to use css3 Make an icon effect
How to use canvas to realize the interaction between the ball and the mouse
The above is the detailed content of Advantages and Disadvantages of asyncio. For more information, please follow other related articles on the PHP Chinese website!