asyncio
— E/S assíncrona¶
asyncio é uma biblioteca para escrever código simultâneo usando a sintaxe async/await.
O asyncio é usado como uma base para várias estruturas assíncronas do Python que fornecem rede e servidores web de alto desempenho, bibliotecas de conexão de banco de dados, filas de tarefas distribuídas etc.
asyncio geralmente serve perfeitamente para código de rede estruturado de alto nível e vinculado a E/S.
asyncio fornece um conjunto de APIs de alto nível para:
executar corrotinas do Python simultaneamente e ter controle total sobre sua execução;
realizar IPC e E/S de rede;
controlar subprocessos;
distribuir tarefas por meio de filas;
sincronizar código simultâneo;
Além disso, há APIs de baixo nível para desenvolvedores de biblioteca e framework para:
criar e gerenciar laços de eventos, que fornecem APIs assíncronas para rede, execução de subprocessos, tratamento de sinais de sistemas operacionais etc;
implementar protocolos eficientes usando transportes;
fazer uma ponte sobre bibliotecas baseadas em chamadas e codificar com a sintaxe de async/await.
Availability: not Emscripten, not WASI.
Este módulo não funciona ou não está disponível em plataformas WebAssembly wasm32-emscripten
e wasm32-wasi
. Veja Plataformas WebAssembly para mais informações.
REPL de asyncio
Você pode experimentar um contexto concorrente asyncio
no 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'
Levanta um evento de auditoria cpython.run_stdin
sem argumentos.
Alterado na versão 3.12.5: (também 3.11.10, 3.10.15, 3.9.20 e 3.8.20) Emite eventos de auditoria.
Referência
Nota
O código-fonte para o asyncio pode ser encontrado em Lib/asyncio/.