Python 中的Asyncio¶
约 212 个字 1 张图片 预计阅读时间 1 分钟
使用单线程 + 事件循环 (Event Loop)。这是一种协作式多任务。 代码执行到 await(比如等待网络响应)时,主动交出控制权挂起自己,让事件循环去执行其他任务。等到网络响应回来了,再恢复执行。
优缺点¶
-
适用场景:高并发 I/O(特别是网络连接)。
- 比如:高性能 Web 服务器(FastAPI)、WebSocket 服务、同时处理数万个长连接。
-
优缺点:
-
✅ 极致轻量:没有线程切换的操作系统开销,内存占用极低,能处理 C10k(万级并发)问题。
-
❌ 传染性:一旦用了
async,整个调用链都要变成异步。 -
❌ 怕阻塞:因为是单线程,如果中间混入了一个耗时的计算或阻塞 I/O(如
time.sleep),整个程序都会卡死。
-