1, Task对象的作用
可以将多个任务添加到事件循环当中,达到多任务并发的效果
2.如何创建task对象
asyncio.create_task(协程对象)
注意:create_task只有在python3.7及以后的版本中才可以使用,就像asyncio.run()一样,
在3.7以前可以使用asyncio.ensure_future()方式创建task对象
3.示例一(目前不推荐这种写法)
async def func():
print(1)
await asyncio.sleep(2)
print(2)
return "test"
async def main():
print("main start")
# python 3.7及以上版本的写法
# task1 = asyncio.create_task(func())
# task2 = asyncio.create_task(func())
# python3.7以前的写法
task1 = asyncio.ensure_future(func())
task2 = asyncio.ensure_future(func())
print("main end")
ret1 = await task1
ret2 = await task2
print(ret1, ret2)
# python3.7以后的写法
# asyncio.run(main())
# python3.7以前的写法
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
"""
在创建task的时候,就将创建好的task添加到了时间循环当中,所以说必须得有时间循环,才可以创建task,否则会报错
"""

本文介绍了Python的asyncio模块中的Task对象,用于实现协程的并发执行。通过示例代码展示了如何创建Task,包括使用`asyncio.create_task`(Python 3.7+)和`asyncio.ensure_future`(Python 3.6及以下)。文中还解释了Task如何与事件循环配合,以及如何通过`asyncio.wait`管理并发任务。示例中包含多种并发任务的执行方式,帮助读者深入理解Task在并发控制中的作用。
最低0.47元/天 解锁文章
356

被折叠的 条评论
为什么被折叠?



