Если я получаю то, что вы пытаетесь сделать ...
Чтобы запустить обе функции одновременно, вы можете использовать asyncio.create_task и asyncio.wait для результатов их.
Посмотрите на следующий пример:
import sys
import asyncio
async def test_1():
return sys._getframe().f_code.co_name
async def test_2():
return sys._getframe().f_code.co_name
async def main():
t1 = asyncio.create_task(test_1())
t2 = asyncio.create_task(test_2())
done, pending = await asyncio.wait([t1, t2])
results = [d.result() for d in done]
# The order of the finished function is unknown
print(results)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()
Он будет запускать две функции и будет дождитесь , пока они оба не закончат sh.
Как только они будут done
, он соберет результаты обеих функций done
в список results
.