"asyncio" --- Asynchronous I/O
******************************

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


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*.

Availability: not WASI.

This module does not work or is not available on WebAssembly. See
Plateformes WebAssembly for more information.

-[ 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.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 ]-


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