Saltearse al contenido

Asincronia

La asincronía en Python es un modelo de programación que permite ejecutar tareas de manera concurrente, sin bloquear el flujo principal del programa mientras espera que se completen operaciones lentas como leer archivos, acceder a bases de datos o hacer peticiones de red.

Cuando ejecutas código de forma secuencial (sincrónica), si una función tarda mucho (por ejemplo, en recibir datos de internet), el resto del programa se detiene hasta que termine. Con la asincronía, puedes decirle a Python:

Python introduce la asincronía usando dos palabras clave:

  • asyncio : importas asyncio para acceder a funciones de asincronía

  • async : para definir una función asincrónica

  • await : para esperar el resultado de una operación asincrónica

saludo.py
import asyncio
async def saludar():
print('Hola')
await asyncio.sleep(1) # Espera un segundo
print('Mundo')
# Ejecutar la función asincrónica
asyncio.run(saludar())

Salida:

terminal
Hola
(espera 1 segundo)
Mundo
FunciónDescripción
asyncio.run()Ejecuta una corutina principal desde código síncrono.
asyncio.sleep()Pausa una corutina sin bloquear el hilo principal.
asyncio.create_task() Inicia una tarea asincrónica en segundo plano, sin esperar su resultado.
asyncio.wait() Similar a gather(), pero con más control sobre el tiempo de espera y errores.
asyncio.as_completed()Ejecuta tareas y permite manejar los resultados a medida que se completan.
asyncio.TimeoutErrorExcepción para manejar límites de tiempo.
asyncio.gather()Ejecuta varias funciones asincrónicas al mismo tiempo (concurrentemente) y espera a que todas terminen.