import asyncio #==========python实现最经典的异步并发模型.
from datetime import datetime
# 定义一个异步函数
async def greet(name):
# print("Hello, " + name + str(datetime.now()))
await asyncio.sleep(2) # 使用异步的sleep函数
# print("Goodbye, " + name + str(datetime.now()))
return name
# 执行异步函数
async def main():
# 创建任务并发执行
allwork=['111','222','333'] # 所有需要执行的参数
a=[]
for i in allwork:
t=asyncio.create_task(greet(i))
a.append(t)
# 等待所有任务完成
asyncio.gather(*a)
b=[]
print('收集结果')
for i in a:
b.append(await i)
print('打印最终并发结果,我们可以看到这个结果是保序的',b)
print('不保序的异步需要在内部异步函数做b.append操作了.保序的只需要在外部异步main函数做b.append')
if __name__ == "__main__":
start = datetime.now() # 记录程序开始执行的时间
asyncio.run(main()) # 运行主函数
end = datetime.now() # 记录程序结束执行的时间
print('elapsed time =', end - start) # 输出执行时间