Sobes.tech
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.