如何在Python中创建更好的协程

问题描述 投票:0回答:1

我想创建两个异步函数,我不知道什么时候需要运行它们中的任何一个,但它们必须不能互相中断

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
python asynchronous python-asyncio coroutine
1个回答
0
投票

如果我理解正确的话,你想使用

asyncio.gather
。 看一下here,它有一个包含两次调用的示例:)

© www.soinside.com 2019 - 2024. All rights reserved.