Middle — Middle+
Como é que a execução assíncrona de tarefas e a sua gestão são implementadas em níveis superiores de desenvolvimento?
sobes.tech IA
Resposta da IA
Em Python, a execução assíncrona de tarefas a um nível elevado é geralmente implementada usando o módulo asyncio. Este fornece um ciclo de eventos (event loop), que gere a execução de corutinas — funções especiais que podem pausar a sua execução, permitindo que outras tarefas funcionem em paralelo.
Elementos principais:
- async def — declaração de uma corutina.
- await — pausa a corutina até que uma operação assíncrona seja concluída.
- asyncio.create_task() — cria e agenda uma tarefa para execução paralela.
- asyncio.gather() — executa várias tarefas e aguarda a sua conclusão.
Exemplo:
import asyncio
async def task(name, delay):
print(f"Tarefa {name} iniciada")
await asyncio.sleep(delay)
print(f"Tarefa {name} concluída")
async def main():
tasks = [asyncio.create_task(task(f"{i}", i)) for i in range(1, 4)]
await asyncio.gather(*tasks)
asyncio.run(main())
Assim, asyncio permite gerir eficientemente múltiplas tarefas assíncronas sem bloquear o thread principal, o que é especialmente útil para operações de entrada/saída e rede.