asyncio
— Entrées/Sorties asynchrones¶
asyncio est une bibliothèque permettant de faire de la programmation asynchrone en utilisant la syntaxe async/await.
asyncio constitue la base de nombreux cadriciels (frameworks) Python asynchrones qui fournissent des utilitaires réseau et des serveurs web performants, des bibliothèques de connexion à des bases de données, des files d'exécution distribuées, etc.
asyncio est souvent le bon choix pour écrire du code réseau de haut-niveau et tributaire des entrées-sorties (IO-bound).
asyncio fournit des interfaces de programmation haut-niveau pour :
exécuter des coroutines Python de manière concurrente et d'avoir le contrôle total sur leur exécution ;
effectuer des entrées/sorties réseau et de la communication inter-processus ;
contrôler des sous-processus ;
distribuer des tâches avec des queues ;
synchroniser du code s'exécutant de manière concurrente ;
En plus, il existe des bibliothèques de bas-niveau pour que les développeurs de bibliothèques et de frameworks puissent :
créer et gérer des boucles d'événements, qui fournissent des bibliothèques asynchrones de
réseau
, d'exécution desubprocesses
, de gestion designaux système
, etc ;implémenter des protocoles efficaces à l'aide de transports ;
lier des bibliothèques basées sur les fonctions de rappel et développer avec la syntaxe async/await.
asyncio REPL
You can experiment with an asyncio
concurrent context in the REPL:
$ python -m asyncio
asyncio REPL ...
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
>>> await asyncio.sleep(10, result='hello')
'hello'
Raises an auditing event cpython.run_stdin
with no arguments.
Modifié dans la version 3.9.20: (also 3.8.20) Emits audit events.
Sommaire
Note
Le code source pour asyncio est disponible dans Lib/asyncio/.