¿Cómo interactúa el mecanismo Event Loop con las corutinas en la biblioteca asyncio en Python?
sobes.tech AI
Respuesta de la IA
En la biblioteca de Python asyncio, el mecanismo Event Loop se encarga de gestionar la ejecución de las corutinas, que son funciones especiales que pueden pausar su ejecución para permitir que otras tareas se ejecuten en paralelo en un solo hilo.
El Event Loop verifica constantemente qué corutinas están listas para ejecutarse (por ejemplo, cuando se completa una operación de entrada/salida) y las reanuda. Cuando una corutina encuentra la palabra clave await, se pausa, liberando el Event Loop para ejecutar otras corutinas. Cuando ocurre el evento esperado (por ejemplo, datos leídos de la red), el Event Loop reanuda la ejecución de la corutina correspondiente.
Ejemplo:
import asyncio
async def say_hello():
print('Hello')
await asyncio.sleep(1) # pausa la corutina por 1 segundo
print('World')
asyncio.run(say_hello())
Aquí, el Event Loop gestiona la pausa de asyncio.sleep, permitiendo que otras tareas se ejecuten durante ese tiempo.