Sobes.tech
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.