使用 python asyncio 执行多个任务

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

我有以下代码:

import asyncio

async def test_1():      
    res1 = await foo1()
    return res1

async def test_2():      
    res2 = await foo2()
    return res2

if __name__ == '__main__':
    print(asyncio.get_event_loop().run_until_complete([test_1, test_2]))

但最后一次对

.run_until_complete()
的调用不起作用。如何使用
.run_until_complete()
对多个任务执行异步调用?

python python-3.x multithreading asynchronous python-asyncio
1个回答
18
投票

我正在寻找示例并找到了答案。我们可以运行一个简单的任务,它收集多个协程:

import asyncio    

async def test_1(dummy):
  res1 = await foo1()
  return res1

async def test_2(dummy):
  res2 = await foo2()
  return res2

async def multiple_tasks(dummy):
  input_coroutines = [test_1(dummy), test_2(dummy)]
  res = await asyncio.gather(*input_coroutines, return_exceptions=True)
  return res

if __name__ == '__main__':
  loop = asyncio.get_event_loop()
  res1, res2 = loop.run_until_complete(multiple_tasks(dummy=0))
© www.soinside.com 2019 - 2024. All rights reserved.