使用异步 IO(异步编程)
1. 定义异步函数
声明异步函数的方式如下:
import asyncio
async def fetch_data():
print("正在获取数据...")
await asyncio.sleep(2) # 模拟一个 I/O 操作
print("数据已获取。")
2. 运行异步函数
调用异步函数并等待它们完成的方式如下:
async def main():
await fetch_data()
asyncio.run(main())
3. 等待多个协程
调用多个异步函数并等待它们全部完成的方式如下:
async def main():
task1 = fetch_data()
task2 = fetch_data()
await asyncio.gather(task1, task2)
asyncio.run(main())
4. 创建任务
分发任务的方式如下:
async def main():
task1 = asyncio.create_task(fetch_data())
task2 = asyncio.create_task(fetch_data())
await task1
await task2
asyncio.run(main())
5. 异步迭代
异步遍历的方式,允许在各个项之间留出时间给其他函数:
async def fetch_item(item):
await asyncio.sleep(1)