# `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 de `subprocesses`, de gestion de `signaux 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.8.20: Emits audit events.

Sommaire

Bibliothèques de haut-niveau

- Coroutines et tâches
- Streams
- Synchronization Primitives
- Sous-processus
- Queues
- Exceptions

Bibliothèques de bas-niveau

- Boucle d'évènements
- Futurs
- Transports et Protocoles
- Stratégies
- Platform Support

Guides et tutoriels

- High-level API Index
- Low-level API Index
- Programmer avec asyncio

Note

Le code source d'`asyncio` est disponible dans Lib/asyncio/.