此问题已在此处有答案:
How to properly create and run concurrent tasks using python's asyncio module?(3个答案)
10小时前关闭。
我想创建两个异步函数,我不知道什么时候需要运行它们中的任何一个,但它们必须不互相中断
import asyncio
async def func1():
await asyncio.sleep(1)
print("func1 completed")
async def func2():
await asyncio.sleep(1)
print("func2 completed")
asyncio.run(func1())
asyncio.run(func2())
当我运行它时,第二个“asyncio.run()”将等待第一个完成,只有在那时,它才会以1秒的延迟运行func2:
func1 completed
*1 second delay*
func2 completed
但是我想同时运行它们,所以它们的结果看起来像这样:
func1 completed
*no delay*
func2 completed
2条答案
按热度按时间col17t5w1#
如果我理解正确的话,你应该使用
asyncio.gather
。看一下here,它有一个两个调用的例子:)h79rfbju2#
我刚刚从线程中发现了线程,现在我可以随时运行函数,而不必等待运行的函数完成。
他们将同时打印“已完成”。