什么是 asyncio
?
asyncio
是 Python 3.4 引入的异步 I/O 框架,用于编写单线程并发的代码。它基于协程(coroutine)和事件循环(event loop)实现非阻塞操作,适合处理高并发网络请求或IO密集型任务。
核心概念
- 协程:通过
async def
定义,用await
关键字进行协作式暂停 - 事件循环:驱动异步程序运行的核心机制
asyncio.get_event_loop()
- 异步函数:使用
async
关键字修饰的函数,需配合await
调用 - 任务调度:通过
asyncio.create_task()
或loop.create_task()
分配工作
快速上手
import asyncio
async def say_hello():
print("Hello, async world!")
await asyncio.sleep(1)
print("Async operation completed.")
asyncio.run(say_hello())
运行结果
Hello, async world!
Async operation completed.
实用场景
- 网络请求并发(如
aiohttp
或asyncssh
) - 数据库操作(如
asyncmy
驱动) - 实时数据处理(如 WebSocket 通信)
推荐学习路径
- 先了解 Python 协程基础
- 研究
async/await
语法与asyncio
模块关系 - 实践异步网络请求案例(如使用
aiohttp
) - 探索异步编程与多线程/多进程的区别
注意事项
- 异步代码需在事件循环中运行(Python 3.7+ 推荐使用
asyncio.run()
) - 避免在异步函数中进行CPU密集型计算,否则会浪费并发优势
- 使用
asyncio.gather()
同时运行多个任务 - 异步函数返回的是
coroutine object
,需用await
或async
调用
如需深入学习异步编程进阶内容,可访问 Python 异步编程进阶指南