Introdução
O Python tradicional utiliza o GIL (Global Interpreter Lock), que impede múltiplas threads de executarem código Python em paralelo.
Com a proposta da PEP 703, surgiu uma versão experimental do Python que permite execução paralela real com threads, removendo essa limitação.
Avisos importantes
- O Python sem GIL ainda é experimental
- Nem todas as bibliotecas são compatíveis
- Extensões em C podem não funcionar corretamente
- Não recomendado para produção (ainda)
Pré-requisitos
Certifique-se de ter as dependências básicas instaladas:
sudo apt install build-essential git libssl-dev zlib1g-dev \
libncurses5-dev libreadline-dev libsqlite3-dev libffi-dev
(os nomes podem variar dependendo da distro — no Gentoo/FreeBSD você já deve saber ajustar)
1) Baixando o código-fonte do Python
git clone https://github.com/python/cpython.git
cd cpython
2) Selecionando a versão com suporte ao no-GIL
git checkout 3.13
3) Compilando o Python sem GIL
./configure --disable-gil
make -j$(nproc)
sudo make install
4) Entendendo os binários gerados
Após a instalação, você terá dois binários principais:
python3.13→ versão normal (com GIL)python3.13t→ versão sem GIL (no-GIL) ✅
O sufixo t significa threaded (sem GIL).
5) Executando o Python sem GIL
/usr/local/bin/python3.13t --version
Ou diretamente:
python3.13t
6) Verificando se o GIL está desativado
Dentro do interpretador:
import sys
print(sys._is_gil_enabled())
Resultado esperado:
False
7) Criando um alias (opcional)
Para facilitar o uso no terminal:
alias python-nogil="/usr/local/bin/python3.13t"
Assim você pode executar:
python-nogil
Fechando
O Python sem GIL representa um passo importante para melhorar desempenho em aplicações concorrentes. Apesar de ainda ser experimental, já é possível testar e explorar seus benefícios.
- Teste benchmarks com threads
- Valide compatibilidade de bibliotecas
- Evite uso em produção por enquanto