Expliquez le principe de fonctionnement des coroutines et comment elles sont gérées pendant leur exécution.
Réponse de l'IA
sobes.tech IA
Les coroutines sont des fonctions qui peuvent suspendre leur exécution et la reprendre plus tard, en conservant leur état. En Python, les coroutines sont implémentées avec le mot-clé async def et sont gérées via une boucle d'événements (event loop).
Pendant l'exécution, une coroutine peut "attendre" (await) la fin d'une opération asynchrone, libérant ainsi le contrôle à d'autres tâches. Cela permet de travailler efficacement avec des opérations d'entrée/sortie sans bloquer le fil d'exécution.
Exemple d'une coroutine simple :
import asyncio
async def say_hello():
print("Bonjour")
await asyncio.sleep(1) # suspend la coroutine pendant 1 seconde
print("Monde")
asyncio.run(say_hello())
Ici, await transfère le contrôle à la boucle d'événements, qui peut basculer entre d'autres coroutines, assurant l'asynchronie.
Ainsi, les coroutines permettent d'écrire du code asynchrone semblable au code synchrone, simplifiant la gestion des tâches parallèles.