# coding: utf-8
# @Time : 2022-05-17 13:15
# @Author : AngDH
import asyncio
import time
now = lambda: time.time()
async def task1():
await asyncio.sleep(1)
print("task1 done")
return "task1"
async def task2():
await asyncio.sleep(1)
print("task2 done")
return "task2"
async def task3():
await asyncio.sleep(1)
print("task3 done")
return "task3"
async def main():
start = now()
tasks = [task1(), task2(), task3()]
# 1
# dones, pendings = await asyncio.wait(tasks)
# for task in dones:
# print("task result:", task.result())
"""异步运行 异步输出"""
# 2
# for task in asyncio.as_completed(tasks):
# result = await task
# print("task result:", result)
"""执行顺序=结果顺序"""
# 3
result = await asyncio.gather(*tasks)
print(result)
"""异步运行,同步输出,结果顺序和传参顺序一致"""
print("耗时:", now() - start)
asyncio.run(main())
协程的嵌套
原创
©著作权归作者所有:来自51CTO博客作者angdh的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:用twisted 发送请求
下一篇:同步库与协程的共同使用

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python协程(asyncio)实现爬虫例子
使用python协程实现异步爬取网站。
python 协程 爬虫 -
go创建指定数量的协程进行并发任务
go使用chan waitGroup等实现指定数量的协程来跑并发任务
Go Group 高并发 -
java Filter 被执行了两次
Java Web学习之Filter过滤器 今天给大家带来的是Java Web学习中的一个很重要的内容Filter过滤器,在我们之前写的Javaweb的代码中,我大多数使用jsp和servlet结合的方式实现前后台交互的功能来实现页面的数据交互,但是单单只用这jsp和servlet时我发现,就算不通过登录的界面我们也能直接的跳转到之后的界面,例如我们的登录界面是login.jsp的页面,登录成功之后
java Filter 被执行了两次 Java web学习之Filter过滤器 java html 登录界面