Junior — Middle
É possível criar novos threads dentro de funções assíncronas em Python?
sobes.tech IA
Resposta da IA
Sim, dentro de funções assíncronas em Python é possível criar novas threads. As funções assíncronas (async def) funcionam dentro de um ciclo de eventos (event loop), mas nada impede o uso do módulo padrão threading para criar threads.
Isto pode ser útil se precisar executar uma operação bloqueante em paralelo com código assíncrono.
Exemplo:
import asyncio
import threading
async def funcao_assincrona():
def tarefa_thread():
print("Executado numa thread separada")
thread = threading.Thread(target=tarefa_thread)
thread.start()
await asyncio.sleep(1)
thread.join()
asyncio.run(funcao_assincrona())
No entanto, é importante lembrar que as threads em Python são limitadas pelo GIL, e para tarefas intensivas de CPU, é melhor usar processos (multiprocessing). Para operações de entrada/saída, o código assíncrono costuma ser mais eficiente.