# `asyncio` — Asynchronous I/O

asyncio es una biblioteca para escribir código concurrente utilizando la sintaxis async/await.

asyncio es utilizado como base en múltiples frameworks asíncronos de Python y provee un alto rendimiento en redes y servidores web, bibliotecas de conexión de base de datos, colas de tareas distribuidas, etc.

asyncio suele encajar perfectamente para operaciones con límite de E/S y código de red estructurado de alto nivel.

Ver también

A Conceptual Overview of asyncio

  Explanation of the fundamentals of asyncio.

asyncio provee un conjunto de APIs de alto nivel para:

- ejecutar corutinas de Python de manera concurrente y tener control total sobre su ejecución;

- realizar redes E/S y comunicación entre procesos(IPC);

- controlar subprocesos;

- distribuir tareas a través de colas;

- sincronizar código concurrente;

Adicionalmente, existen APIs de bajo nivel para desarrolladores de bibliotecas y frameworks para:

- create and manage event loops, which provide asynchronous APIs for networking, running subprocesses, handling OS signals, etc;

- implementar protocolos eficientes utilizando transportes;

- Bibliotecas puente basadas en retrollamadas y código con sintaxis async/wait.

Availability: not WASI.

This module does not work or is not available on WebAssembly. See Plataformas 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.

Distinto en la versión 3.12.5: (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events.

Distinto en la versión 3.13: Uses PyREPL if possible, in which case `PYTHONSTARTUP` is also executed. Emits audit events.

Referencias

*APIs* de alto nivel

- Runners
- Corrutinas y tareas
- Streams
- Primitivas de sincronización
- Sub-procesos
- Colas
- Excepciones
- Call Graph Introspection

*APIs* de bajo nivel

- Bucle de eventos
- Futures
- Transportes y protocolos
- Políticas
- Soporte de plataforma
- Extensión

Guías y tutoriales

- Índice de API de alto nivel
- Índice de API de bajo nivel
- Desarrollando con asyncio

Nota

El código fuente para asyncio puede encontrarse en Lib/asyncio/.