ExpertiDict

Python · Intermediário · Inglês · Técnico

threading

/ˈθɹɛdɪŋ/substantivo

Módulo da biblioteca padrão para criar threads, que executam funções de forma concorrente no mesmo processo. Com o GIL, rendem bem em tarefas de I/O, mas não aceleram cálculo.

Onde usar

Usado para baixar vários arquivos ou aguardar a rede sem travar o programa. Para compartilhar dados entre threads, use Lock ou queue.Queue, e para trabalho de CPU prefira multiprocessing.

Em código

import threading

def tarefa(n):
  print('thread', n)

t = threading.Thread(target=tarefa, args=(1,))
t.start()
t.join()

Exemplos

Run the downloads in threads, since it's all I/O.

Rode os downloads em threads, já que é tudo I/O.

Protect the counter with a threading lock.

Proteja o contador com um lock do threading.

Cuidado

Não confunda concorrência com paralelismo: com o GIL, duas threads de cálculo não rodam ao mesmo tempo no CPython padrão.

Veja também

Todos os termos de Python