Introdução
A programação assíncrona é uma abordagem poderosa para escrever código simultâneo que pode lidar com várias tarefas ao mesmo tempo. O módulo asyncio
do Python fornece uma estrutura para escrever programas assíncronos usando as palavras-chave async
e await
, permitindo que você gerencie com eficiência código de rede estruturado de alto nível e vinculado a E/S.
Neste tutorial, você aprenderá: - Os conceitos básicos por trás da programação assíncrona. - Como usar o módulo asyncio
do Python para escrever funções assíncronas. - Exemplos práticos de E/S assíncrona.
O que é programação assíncrona?
A programação assíncrona permite que um programa inicie uma tarefa e continue sem esperar que ela seja concluída. Essa abordagem sem bloqueio é ideal para lidar com operações como solicitações de rede, E/S de arquivos ou outras tarefas que podem levar tempo para serem concluídas. Usando asyncio
, você pode melhorar a capacidade de resposta e a eficiência de suas aplicações.
Conceitos básicos do Asyncio
Funções assíncronas:
Definido usando a sintaxeasync def
. Eles retornam uma corrotina, que é um tipo especial de iterador que pode ser aguardado.Await:
A palavra-chaveawait
é usada para pausar a execução de uma função assíncrona até que uma corrotina seja concluída.Loop de eventos:
O loop de eventos é o núcleo de todas as aplicações asyncio. Ele agenda e gerencia tarefas assíncronas e retornos de chamada.
Um exemplo simples de Asyncio
Abaixo está um exemplo que demonstra uma função assíncrona básica em Python:
import asyncio
# Definir uma função assíncrona usando async def
async def greet(name):
print(f"Hello, {name}!")
# Simule um atraso assíncrono (por exemplo, E/S de rede)
await asyncio.sleep(1)
print(f"Goodbye, {name}!")
# Função principal para executar a função assíncrona
async def main():
# Programe a corrotina greet para ser executada para dois nomes simultaneamente
await asyncio.gather(
"Alice"),
greet("Bob")
greet(
)
# Execute o loop de eventos
if __name__ == "__main__":
asyncio.run(main())
Explicação:
- A função greet
é definida como uma função assíncrona que imprime uma saudação, espera um segundo usando await asyncio.sleep(1)
e, em seguida, imprime uma mensagem de despedida.
- A função main
usa asyncio.gather
para executar duas instâncias de greet
simultaneamente.
- asyncio.run(main())
inicia o loop de eventos e executa a corrotina main
.
Funcionalidades avançadas do Asyncio
Depois de se sentir confortável com o básico, você pode explorar recursos mais avançados do asyncio
, como:
- E/S assíncrona com fluxos:
Lidando com conexões de rede usando soquetes assíncronos. - Agendamento de tarefas:
Gerenciando e agendando várias tarefas assíncronas. - Integração com outras bibliotecas:
Combinarasyncio
com outras estruturas para desenvolvimento web ou processamento de dados.
Conclusão
A programação assíncrona com o módulo asyncio
do Python pode melhorar muito o desempenho de aplicativos vinculados a E/S e melhorar a capacidade de resposta do seu código. Ao compreender os conceitos básicos e praticar com exemplos como o acima, você estará bem preparado para começar a escrever seus próprios programas assíncronos.
Leitura adicional
- Python para iniciantes: seu primeiro script
- Processamento paralelo em Python: acelere seu código
- Depuração e registro eficazes em Python: práticas recomendadas
Boa programação e aproveite para explorar a programação assíncrona com o asyncio do Python!
Explore mais artigos
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Introdução à programação assíncrona com Asyncio do Python},
date = {2024-02-05},
url = {https://www.datanovia.com/pt/learn/programming/python/advanced/asyncio.html},
langid = {pt}
}