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.