Junior — Middle
O que é GIL em Python?
sobes.tech IA
Resposta da IA
GIL (Global Interpreter Lock) é um mecanismo no CPython (a implementação padrão do Python) que garante que, num dado momento, apenas um thread executa o bytecode Python.
Isto significa que, mesmo que tenha vários threads, eles não podem executar código Python simultaneamente, o que limita o paralelismo em programas multithread.
O GIL simplifica a gestão de memória e evita problemas com acesso concorrente a objetos, mas reduz a eficiência de cálculos multithread, especialmente em processadores multinúcleo.
Para contornar as limitações do GIL, costuma-se usar:
- Multiprocessamento (módulo multiprocessing)
- Uso de extensões em C que libertam o GIL durante cálculos pesados
- Outras implementações de Python sem GIL (por exemplo, Jython, IronPython)
Exemplo:
import threading
def worker():
print("Trabalho em thread")
thread = threading.Thread(target=worker)
thread.start()
thread.join()
Embora os threads sejam iniciados, o GIL garante que o bytecode seja executado de forma sequencial.