【发布时间】:2018-03-16 15:27:46
【问题描述】:
我有一个问题,我希望异步函数运行 3 个协程,但它最终运行 2 个,有时只运行 1 个。代码如下所示:
async def myfunction():
await coroutine1()
await coroutine2()
await coroutine3()
有没有什么办法可以保证这3个协程一个接一个地执行?
【问题讨论】:
-
这正是你要做的。为什么它不总是运行所有三个?其中一个是否引发了异常?
-
它们都没有引发异常,虽然有时最后一个协程不会执行,但我现在已经解决了这个问题,使用 tasks = asyncio.gather(c1(), c2(), c3( )) 然后 loop.ensure_future(*tasks)
标签: python python-asyncio