¿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 segundo
- ~3 segundos (Opción correcta)
- ~0 segundos
- 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 secondRecuerda
Los await separados van en secuencia; gather los ejecuta de forma concurrente.