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 desubprocessos
, tratamento desinais 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.
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.9.20: (also 3.8.20) Emits audit events.
Referência
Nota
O código-fonte para o asyncio pode ser encontrado em Lib/asyncio/.