asyncio.create_task,asyncio task
本文主要详细介绍asyncio异步编程的任务对象。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。
00-1010 1.任务对象2的功能。如何创建任务对象3。例1(目前不推荐这种写法)4。例25。实施例3的概述(上述实施例2的简化版本)
目录
可以在事件循环中添加多个任务,达到多任务并发的效果。
1.Task对象的作用
Asyncio.create_task(协作对象)
注意: create _ task只能在python3.7版及更高版本中使用,就像asyncio.run()一样。
在3.7之前,可以使用asyncio.guarantee _ future()创建任务对象。
2.如何创建task对象
异步定义函数():
打印(1)
等待睡眠(2)
打印(2)
返回“测试”
异步定义主():
打印(“主开始”)
如何写# python 3.7及以上
# task 1=asyncio . create _ task(func())
# task 2=asyncio . create _ task(func())
#编写于Python 3.7之前
task 1=asyn CIO . assure _ future(func())
task 2=asyncio . assure _ future(func())
打印(“主要结束”)
ret1=等待任务1
ret2=等待任务2
打印(返回1,返回2)
Python 3.7之后的写作
# asyncio.run(main())
#编写于Python 3.7之前
loop=asyncio.get_event_loop()
loop.run_until_complete(main())
创建任务时,会将创建的任务添加到时间循环中,因此在创建任务之前必须有时间循环,否则会报告错误。
3.示例一(目前不推荐这种写法)
异步定义函数1():
打印(1111)
等待睡眠(2)
打印(2222)
返回“测试”
异步定义维护1():
打印(“主开始”)
任务=[
asyncio . assure _ future(func 1()),
asyncio . assure _ future(func 1())
]
打印(“主要结束”)
#成功执行后,结果是in done,可以添加第二个参数timeout来等待。如果在超时内没有完成,那么pending就是未完成的事情。
done,pending=await asyncio . wait(tasks,timeout=1)
打印(完成)
#打印(待定)
#编写于Python 3.7之前
loop=asyncio.get_event_loop()
loop.run_until_complete(main1())
4.示例2
第二种方法的简化版是不在任务中直接添加任务,而是先将协同对象添加到列表中,在最后一次运行时添加。
异步定义函数2():
打印(1111)
等待睡眠(2)
打印(2222)
返回“测试”
任务=[
func2(),
函数2()
]
#编写于Python 3.7之前
loop=asyncio.get_event_loop()
done,pending=loop . run _ until _ complete(asyncio . wait(tasks))
打印(完成)
打印(待定)
5.示例3(算是以上示例2的简化版)
本文到此为止。希望能帮到你,也希望你能多关注更多热门IT软件开发工作室的内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。