Sobes.tech
Middle

O que é a função create_task()?

sobes.tech IA

Resposta da IA

A função asyncio.create_task() cria um objeto Task e agenda uma função assíncrona (coroutine) para execução no ciclo de eventos em segundo plano. Ela retorna um objeto Task, que pode ser usado para obter o resultado da coroutine ou cancelar sua execução.

import asyncio

async def my_coroutine():
    print("Coroutine começou")
    await asyncio.sleep(1)
    print("Coroutine terminou")
    return "Pronto"

async def main():
    print("Criando tarefa")
    task = asyncio.create_task(my_coroutine())
    print("Tarefa criada")

    # Outras operações podem ser feitas enquanto a tarefa está em andamento
    await asyncio.sleep(0.5)
    print("Realizando outras operações")

    # Aguardar a conclusão da tarefa e obter o resultado
    result = await task
    print(f"Resultado da tarefa: {result}")

asyncio.run(main())

Características principais:

  • Execução não bloqueante: Inicia a coroutine sem esperar que ela termine.
  • Retorna um Task: Permite gerenciar a execução da coroutine lançada.
  • Agendamento: Adiciona a coroutine ao ciclo de eventos para execução.

Diferença de await my_coroutine():

create_task() await my_coroutine()
Não bloqueia o thread de execução Bloqueia o thread até terminar
Retorna um objeto Task Retorna o resultado da coroutine
Permite execução em segundo plano Execução sequencial

Usado para execução paralela (assíncrona) de várias coroutines.