# `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.

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'

Availability: not Emscripten, not WASI.

This module does not work or is not available on WebAssembly platforms `wasm32-emscripten` and `wasm32-wasi`. See Plateformes WebAssembly for more information.

Sommaire

Bibliothèques de haut-niveau

- Exécuteurs (runners)
- Coroutines et tâches
- Flux (streams)
- Primitives de synchronisation
- Sous-processus
- Files d'attente (queues)
- Exceptions

Bibliothèques de bas-niveau

- Boucle d'évènements
- Futures
- Transports et Protocoles
- Politiques
- Prise en charge de la plate-forme
- Extension

Guides et tutoriels

- Index de l'API de haut niveau
- Index de l'API de bas niveau
- Programmer avec asyncio

Note

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