Middle
30
Guarda il codice con asyncio. Quanto tempo impiegherà ad essere eseguita la funzione main? Come fare in modo che le coroutine vengano eseguite in parallelo?
Le aziende dove è stato chiesto
Risposta dell'AI
sobes.tech AI
Без конкретного кода сложно точно сказать, но обычно если корутины вызываются последовательно с помощью await, то общее время выполнения равно сумме времени всех корутин.
Чтобы запустить корутины параллельно, используют asyncio.gather или создают задачи через asyncio.create_task.
Пример:
import asyncio
async def task(id, delay):
await asyncio.sleep(delay)
print(f"Task {id} done")
async def main():
# Последовательное выполнение
await task(1, 2)
await task(2, 2)
asyncio.run(main())
# Чтобы запустить параллельно:
async def main_parallel():
await asyncio.gather(
task(1, 2),
task(2, 2)
)
asyncio.run(main_parallel())
В первом случае общее время ~4 секунды, во втором — ~2 секунды, так как задачи выполняются одновременно.