在Python中,可以使用asyncio.gather()
函数来并行运行具有不同返回类型的异步函数。asyncio.gather()
函数接受一组协程对象,然后同时运行它们,并返回一个包含所有协程返回值的列表。
下面是一个示例代码:
import asyncio
async def async_function1():
await asyncio.sleep(2)
return "Hello"
async def async_function2():
await asyncio.sleep(1)
return 42
async def async_function3():
await asyncio.sleep(3)
return True
async def main():
results = await asyncio.gather(
async_function1(),
async_function2(),
async_function3()
)
print(results)
asyncio.run(main())
在上面的示例中,我们定义了三个异步函数async_function1()
,async_function2()
和async_function3()
,它们分别返回不同类型的值。在main()
函数中,我们使用asyncio.gather()
来并行运行这三个异步函数,并等待它们的返回值。results
变量将包含所有异步函数的返回值,它是一个列表。
当我们运行这个代码时,输出将会是['Hello', 42, True]
,分别对应三个异步函数的返回值。
需要注意的是,异步函数必须使用await
关键字来等待异步操作完成,才能返回结果。在上面的示例中,我们使用了await asyncio.sleep()
来模拟异步操作的延迟。在实际的异步函数中,可以执行其他异步操作,比如发送网络请求、读写文件等。
下一篇:并行运行lambda或更好的方法