Threads and Async in Python
『专家程序员经历多,遇到的坑也多。面对线程的话题,TA 们多半会说:线程很糟糕,你永远不应该使用它们。』
异步的结构
在 Python 中,不适合重量级使用线程。现在更适合使用异步模式,所涉及的库是 asyncio。
asyncio 的结构如下:
层级 |
概念 |
实现 |
---|---|---|
9 |
网络:流 |
StreamReader, StreamWriter, asyncio.open_connection(), asyncio.start_server() |
8 |
网络:TCP/UDP |
Protocol |
7 |
网络:传输 |
BaseTransport |
6 |
工具 |
asyncio.Queue |
5 |
子进程和线程 |
run_in_executor(), asyncio.subprocess |
4 |
任务 |
asyncio.Task, asyncio.create_task() |
3 |
未来对象 |
asyncio.Future |
2 |
事件循环 |
asyncio.run(), BaseEventLoop |
1 |
协程 |
async def, async with, async for, await |
评论
Comments powered by Disqus