Skip to content

Python 中的Asyncio

约 212 个字 1 张图片 预计阅读时间 1 分钟

使用单线程 + 事件循环 (Event Loop)。这是一种协作式多任务。 代码执行到 await(比如等待网络响应)时,主动交出控制权挂起自己,让事件循环去执行其他任务。等到网络响应回来了,再恢复执行。

优缺点

  • 适用场景高并发 I/O(特别是网络连接)。

    • 比如:高性能 Web 服务器(FastAPI)、WebSocket 服务、同时处理数万个长连接。
  • 优缺点

    • 极致轻量:没有线程切换的操作系统开销,内存占用极低,能处理 C10k(万级并发)问题。

    • 传染性:一旦用了 async,整个调用链都要变成异步。

    • 怕阻塞:因为是单线程,如果中间混入了一个耗时的计算或阻塞 I/O(如 time.sleep),整个程序都会卡死。