传统多线程在 IO 密集场景开销大、易出错。Python 的 asyncio 用协程实现"单线程并发",特别适合网络请求、数据库查询等 IO 等待型任务。

一、核心概念

二、对比同步与异步

# 同步:三个请求串行,共需 3 秒
import requests
for url in urls:
    requests.get(url)   # 每个 1 秒
# 异步:三个请求并发,约 1 秒
import asyncio, aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as s:
        async with s.get(url) as r:
            return await r.text()

async def main():
    await asyncio.gather(*[fetch(u) for u in urls])

asyncio.run(main())
异步的收益来自 IO 等待时间的重叠。如果是纯 CPU 计算,异步没有优势,反而该用多进程。

三、常见陷阱

四、小结

asyncio 是 Python 处理高并发 IO 的现代方案。学习曲线略陡,但掌握后能写出高效的网络程序。推荐配合 aiohttp、httpx 等异步库使用。