ExpertiDict

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

GIL

/ɡɪl/substantivo

Global Interpreter Lock: trava do CPython que deixa só uma thread executar bytecode Python por vez. Simplifica o gerenciamento de memória, mas limita o paralelismo das threads em cálculos.

Onde usar

Aparece quando threads não aceleram um cálculo pesado. Para I/O o GIL é liberado durante a espera; para CPU use multiprocessing ou, em builds recentes, o modo sem GIL.

Em código

import sys

# intervalo de troca de thread
print(sys.getswitchinterval())  # 0.005

Exemplos

Threads won't help here because of the GIL.

Threads não ajudam aqui por causa do GIL.

The GIL is released during I/O, so threads still work for downloads.

O GIL é liberado durante o I/O, então threads ainda funcionam para downloads.

Cuidado

O GIL não deixa seu código seguro contra condições de corrida: operações compostas como contador += 1 ainda precisam de lock.

Sinônimos

Global Interpreter Lock, trava global do interpretador

Origem

Sigla de Global Interpreter Lock.

Veja também

Todos os termos de Python