该技能提供使用 asyncio、并发编程模式和 async/await 构建高性能非阻塞 Python 应用的系统性指导。
用途:构建异步 Web API(FastAPI、aiohttp、Sanic)、并发 I/O 操作(数据库、文件、网络)、并发请求爬虫、实时应用(WebSocket 服务器、聊天系统)、同时处理多个独立任务、异步通信微服务、优化 I/O 密集型负载、实现异步后台任务与队列。
同步与异步选择:大量并发网络/数据库调用用 asyncio;CPU 密集计算用多进程或线程池;I/O 与 CPU 混合可用 asyncio.to_thread() 卸载 CPU 工作;简单脚本或连接少时用同步更易调试;高并发 Web API 用异步框架。核心规则是在同一调用路径上保持全同步或全异步。
核心概念包括事件循环、协程(async def)、任务、Future、异步上下文管理器(async with)和异步迭代器(async for)。基本模式有基础 async/await、用 gather() 并发执行、任务创建与管理、异步错误处理、超时处理(asyncio.wait_for)。快速开始示例:async def main(): print("Hello"); await asyncio.sleep(1); print("World"),并用 asyncio.run(main()) 运行(Python 3.7+)。
常见陷阱:忘记 await(返回协程对象而不执行)、阻塞事件循环(用 time.sleep 而非 asyncio.sleep)、不处理取消(捕获 asyncio.CancelledError 并清理后重新抛出)、在同步函数中直接 await 异步函数。测试可用 pytest-asyncio,通过 @pytest.mark.asyncio 标记异步测试,并可结合 pytest.raises(asyncio.TimeoutError) 验证超时。更详细的高级模式位于 references/details.md。