0

试图了解 asyncio 是如何工作的。任务:必须添加一些代码来降低伪代码,以便请求必须是连续的(0、1、2...9),我需要排除数据竞争。我尝试添加循环(asyncio.get_event_loop() 和 run_until_complete()),但只得到“RuntimeError:此事件循环已在运行”。为了了解它的工作原理,我应该朝哪个方向移动?谢谢!

requests = [server.some_method(value) for value in range(10)]
await asyncio.gather(*requests)
4

1 回答 1

0

使用async/await的代码从上到下运行,就像普通代码一样。

如果您只想连续发送 9 个请求,那么您可以像往常一样编写代码 - 除了添加await

for value in range(10):
    await sever.some_method(value)

asyncio.gather()用于同时执行某些事情- async/的点await。您发送的代码将以任意顺序执行server.some_method()9 次(未知;同时)。

于 2022-02-21T18:40:30.037 回答