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.
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;
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
Nota
El código fuente para asyncio puede encontrarse en Lib/asyncio/.