Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Executando duas tarefas ao mesmo tempo

import asyncio

async def iniciar_download():
    print("Iniciando download...")
    await asyncio.sleep(3)
    print("Download concluído !")    

async def analisar_dados():
    print("Iniciando análise de dados...")
    await asyncio.sleep(2)
    print("Análise de dados concluída !")    


async def main():
    await asyncio.gather(
        iniciar_download(),
        analisar_dados()
    )    

asyncio.run(main())    
1 resposta
solução!

Oi! Como vai?

Seu código está muito bem estruturado. Você aplicou corretamente o uso de asyncio.gather() para executar as tarefas de forma concorrente, o que é um conceito muito importante na programação assíncrona.

Uma dica interessante para o futuro é utilizar o método asyncio.create_task() quando quiser iniciar tarefas que podem ser executadas em segundo plano e continuar rodando outras partes do código. Veja este exemplo:


import asyncio

async def tarefa():
    print("Tarefa iniciada")
    await asyncio.sleep(2)
    print("Tarefa concluída")

async def main():
    tarefa_1 = asyncio.create_task(tarefa())
    tarefa_2 = asyncio.create_task(tarefa())

    await tarefa_1
    await tarefa_2

asyncio.run(main())

Esse código cria duas tarefas assíncronas que rodam simultaneamente. Usamos asyncio.create_task() para agendar as tarefas e await para esperar que ambas terminem.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!