异步
注意 :基于 Python3.7 以上
import asycio
async def test1():
print("test1 执行")
return "test1"
print("返回值: ",asyncio.run(test1()))
-
解读,执行流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Sa0Te3l-1606703627401)(en-resource://database/1501:1)] -
task 对象
async def test01():
for i in range(6):
print("-----test01----1")
await asyncio.sleep(1)
print("-----test01----2")
async def test02():
for i in range(6):
print("-----test02----1")
await asyncio.sleep(1)
print("-----test02----2")
def done_after_f(task_obj, num):
print(task_obj.done())
print(num)
async def main():
# 生成task 对象
task1 = asyncio.create_task(test01())
task2 = asyncio.create_task(test02())
# 添加,结束后的回调函数
task1.add_done_callback(functools.partial(done_after_f, num=12))
tasks = [task1, task2]
await asyncio.wait(tasks)
# await asyncio.gather(test01(), test02())
if __name__ == '__main__':
asyncio.run(main())
- 另外一种执行方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWTsrcwg-1606703627405)(en-resource://database/1499:1)]