Repaso
English
PythonIntermedioPY-15

¿Cuánto tarda aproximadamente main()?

import asyncio

async def main():
    await asyncio.sleep(1)
    await asyncio.sleep(1)
    await asyncio.sleep(1)

asyncio.run(main())

Opciones

  1. ~1 segundo
  2. ~3 segundos (Opción correcta)
  3. ~0 segundos
  4. Nunca termina

Respuesta

~3 segundos

Por qué

await significa: espera aquí hasta que esto termine y luego sigue con la línea siguiente.

Por eso los tres sleeps se ejecutan uno tras otro: 1 + 1 + 1 = 3 segundos.

Para ejecutarlos a la vez, lánzalos juntos con asyncio.gather; así esperan en paralelo y el total es de cerca de 1 segundo.

await asyncio.gather(
    asyncio.sleep(1), asyncio.sleep(1), asyncio.sleep(1)
)   # ~1 second

Recuerda

Los await separados van en secuencia; gather los ejecuta de forma concurrente.

Términos clave

Practica esta pregunta en Repaso