В следующем коде:
loop = asyncio.get_event_loop()
l_x = map(async_func, data_x)
l_y = map(async_func, data_y)
l_z = map(async_func, data_z)
x = loop.run_until_complete(asyncio.gather(*l_x))
y = loop.run_until_complete(asyncio.gather(*l_y))
z = loop.run_until_complete(asyncio.gather(*l_z))
async_func
включает в себя задачу ввода-вывода и занимает немного больше времени, поэтому я собираюсь использовать asyncio
для ее одновременного запуска.
Однако проблема в том, что я обнаружил, что он блокирует выполнение после первого loop.run_until_complete()
, и только после того, как все выполнение на l_x
завершено, он затем переходит к выполнению второго loop.run_until_complete()
.
Но я скорее хочу запустить их все одновременно, а также не люблю объединять три результата, поскольку все они не имеют значения. В таком случае, могу ли я по-прежнему запускать их все одновременно?