asyncio --- Asynchronous I/O
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 :
create and manage event loops, which provide asynchronous APIs for networking, running subprocesses, handling OS signals, 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'
This REPL provides limited compatibility with PYTHON_BASIC_REPL.
It is recommended that the default REPL is used
for full functionality and the latest features.
Lève un évènement d'audit cpython.run_stdin sans argument.
Modifié dans la version 3.12.5: (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events.
Modifié dans la version 3.13: Uses PyREPL if possible, in which case PYTHONSTARTUP is
also executed. Emits audit events.
Sommaire
Note
Le code source d'asyncio est disponible dans Lib/asyncio/.