gpt4 book ai didi

python - 我可以加快嵌套 async/await aiohttp 代码的速度吗?

转载 作者:行者123 更新时间:2023-12-01 02:53:13 24 4
gpt4 key购买 nike

如果我将下面代码中的 in range(1) 更改为 in range(5),则运行时间大约会延长 5 倍。我希望从并发中获得更好的数字。我是否错误地设置了此代码?

import asyncio
import aiohttp

async def fetch(session):
async with session.get("http://www.example.com") as res:
await res.text()

async def foo(session):
for i in range(10):
await fetch(session)

async def main(loop):
async with aiohttp.ClientSession(loop = loop) as session:
for i in range(1):
await foo(session)

loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))

最佳答案

您正在寻找的是asyncio.gather它允许并行运行多个协程。

您最终将得到如下所示的代码

def main():
# init session
coroutines = list()
for i in range(5):
coroutine = fetch(session) # XXX: mind the fact that there is no await keyword here
coroutines.append(coroutine)
await asyncio.gather(*coroutines)

关于python - 我可以加快嵌套 async/await aiohttp 代码的速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com