Le module asyncio de Python est une bibliothèque qui utilise des coroutines et des boucles d’événements pour gérer plusieurs tâches IO-bound en parallèle. C’est une partie essentielle de la programmation asynchrone en Python, qui peut aider à améliorer les performances d’une application en permettant à plusieurs tâches d’être effectuées en même temps.
Voici un exemple de base sur la façon d’utiliser le module asyncio :
```
import asyncio
async def main(): print(‘Hello’) await asyncio.sleep(1) print(‘World’)
asyncio.run(main())
```
Dans cet exemple :
- Le mot-clé `async` est utilisé pour déclarer une fonction coroutine. Ces fonctions sont la façon dont asyncio gère les tâches asynchrones.
- `await` est utilisé pour suspendre l’exécution de la coroutine jusqu’à ce que la tâche passée soit terminée. Dans cet exemple, la tâche est simplement de dormir pendant une seconde.
- `asyncio.run(main())` est utilisé pour commencer l’exécution de la coroutine et lance la boucle d’événements.
Voici un exemple un peu plus complexe qui utilise plus de fonctionnalités du module asyncio :
```
import asyncio
import time
async def say_after(delay, what): await asyncio.sleep(delay) print(what)
async def main(): print(f“started at {time.strftime(‘%X’)}”)
await say_after(1, ‘World’) await say_after(2, ‘Hello’) print(f“finished at {time.strftime(‘%X’)}”)asyncio.run(main())
```
Dans cet exemple, `say_after` est une coroutine qui attend un certain délai, puis imprime un message. La coroutine `main` attend que `say_after` se termine avant de continuer.
Remarque : à partir de Python 3.7, la fonction asyncio.run() peut être utilisée comme point d’entrée principal pour exécuter la coroutine de niveau supérieur et ne devrait être utilisée comme tel. Pour les versions antérieures de Python (3.4 à 3.6), il faut utiliser une méthode légèrement différente pour obtenir une boucle d’événements et exécuter des coroutines.