Python · Intermediário · Inglês · Técnico
threading
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.