【发布时间】:2021-10-14 03:42:15
【问题描述】:
由于 asyncio.sleep,函数无法传递到下一行。还有其余的代码,但我将只分享 3 行。它解释了一切。控制台不会将 0 打印到控制台。如果我将 print(0) 移到 asyncio.sleep 上方,它会打印到控制台。
async def getHistory(self):
logging.info(f"Getting history for {self.parite}...")
await asyncio.sleep(1)
print(0)
async def get_histories():
for parite in parite_list:
asyncio.create_task(parite.getHistory())
asyncio.run(get_histories())
【问题讨论】:
-
当然是阻塞,这就是
sleep的目的。但是 1 秒后它会继续,if 事件循环仍在运行,这不是你的情况。 -
@mkrieger1 一秒钟后它没有继续。这就是我在这里问的原因
-
任务一提交到循环程序就结束了,它们并没有完成,只是开始。您实际上需要等待它们完成才能获得预期的输出。
标签: python python-asyncio