ExpertiDict

Python · Avançado · Inglês · Técnico

to_thread

/tu θɹɛd/substantivo

Função asyncio.to_thread (3.9 ou superior) que executa uma chamada bloqueante numa thread separada, devolvendo um awaitable. Evita travar o event loop com código síncrono.

Onde usar

Aparece ao integrar bibliotecas síncronas, como um cliente de banco ou a leitura de arquivos, num serviço assíncrono. Mantém o loop livre para atender outras tarefas.

Em código

import asyncio
import time

async def main():
  await asyncio.to_thread(time.sleep, 1)
  print('livre')

asyncio.run(main())

Exemplos

Wrap the blocking call with to_thread.

Envolva a chamada bloqueante com to_thread.

to_thread keeps the event loop responsive during the file read.

O to_thread mantém o event loop responsivo durante a leitura do arquivo.

Cuidado

Não adianta para cálculo pesado de CPU no CPython padrão, pois o GIL impede o ganho; para isso use um processo.

Sinônimos

asyncio.to_thread

Veja também

Todos os termos de Python