asyncio
— E/S Asíncrona¶
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:
crear y administrar bucles de eventos, los cuales proveen APIs asíncronas para
redes
, ejecutandosubprocesos
, gestionandoseñales del sistema operativo
, etc;implementar protocolos eficientes utilizando transportes;
Bibliotecas puente basadas en retrollamadas y código con sintaxis async/wait.
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.8.20: Emits audit events.
Referencias
Nota
El código fuente para asyncio puede encontrarse en Lib/asyncio/.