狂自私

导航

asyncio编写异步代码示例

使用 asyncio 编写异步代码可以帮助你在 Python 中处理并发任务。以下是一个基本的示例,展示了如何使用 asyncio 创建和运行异步任务。

基本结构

首先,你需要导入 asyncio 模块,并定义异步函数(使用 async def 语法)。然后,利用 await 关键字来调用其他异步函数或等待某个任务完成。

示例代码

import asyncio
import random

# 定义一个异步函数
async def async_task(name):
    print(f"{name} 开始工作...")
    # 模拟异步操作,比如网络请求或 I/O 操作
    await asyncio.sleep(random.uniform(1, 3))  # 随机等待 1 到 3 秒
    print(f"{name} 工作完成!")

# 主函数
async def main():
    # 创建多个异步任务
    tasks = []
    for i in range(5):
        task_name = f"任务 {i + 1}"
        tasks.append(async_task(task_name))
    
    # 使用 asyncio.gather 等待所有任务完成
    await asyncio.gather(*tasks)

# 运行主函数
if __name__ == "__main__":
    asyncio.run(main())

代码解释

  1. 异步函数: async_task 是一个异步函数,模拟了一个耗时的操作(使用 await asyncio.sleep())。
  2. 主函数: main 函数创建了多个异步任务,并将它们收集到一个列表中。
  3. 并发执行: 使用 asyncio.gather 来并发执行所有任务,直到所有任务完成。
  4. 运行: asyncio.run(main()) 是用来启动事件循环并执行主函数。

注意事项

  • 确保在使用 await 时调用的是异步函数。
  • 使用 asyncio.sleep() 来模拟等待时间,而不是使用普通的 time.sleep(),因为后者会阻塞事件循环。
  • 可以根据实际需要调整并发任务的数量和类型,以优化性能。

这个示例展示了如何使用 asyncio 来实现简单的并发处理,你可以根据实际需求进一步扩展和修改代码。

posted on 2024-09-12 14:03  狂自私  阅读(12)  评论(0编辑  收藏  举报