"asyncio" — Entrées/Sorties asynchrones
***************************************

======================================================================


Hello World !
^^^^^^^^^^^^^

   import asyncio

   async def main():
       print('Hello ...')
       await asyncio.sleep(1)
       print('... World!')

   asyncio.run(main())

"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/.
