Python3.7之后使用协程进行并发编程更加容易
[本文出自天外归云的博客园]
在python3.7之后,async和await关键字的使用变得更加容易。
async和await总是成对出现,async定义协程任务,await等待协程任务完成。
代码如下:
import asyncio import time # 定义单个协程任务 async def my_task(any_str, use_duration): # 这里不能使用 time.sleep 因为 time.sleep 方法是同步的 # 如果用 time.sleep 则多个任务的 sleep 耗时会叠加在一起 # 用 asyncio.sleep 方法则可以模拟异步方法的耗时 await asyncio.sleep(use_duration) return f"{any_str} 哦了" # 组装多个协程任务合并为一个协程任务 async def run_task(): # 计算开始时间 start_time = time.perf_counter() # 创建异步协程任务 task1 = my_task("task 1", 6) task2 = my_task("task 2", 3) # 等待异步协程任务执行完成 # 数组 r 中包含了 task1 和 task2 的函数 return 值 r = await asyncio.gather(task1, task2) # 计算结束时间 end_time = time.perf_counter() # 计算异步协程任务的执行耗时 # 约等于且稍稍大于最耗时的协程任务执行耗时 print(f"耗时: {end_time-start_time}秒 返回: {r}") # 执行协程任务 asyncio.run(run_task())
程序输出:
耗时: 6.00373545428738秒 返回: ['task 1 哦了', 'task 2 哦了']
本文来自博客园,作者:天外归云,转载请注明原文链接:https://www.cnblogs.com/LanTianYou/p/16784583.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2016-10-12 一步一步教你编写与搭建自动化测试框架——python篇
2016-10-12 Auty自动化测试框架第七篇——添加动作库和常量文件库
2016-10-12 Auty自动化测试框架第六篇——垃圾代码回收、添加suite支持