Sobes.tech
Junior — Middle
102

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.