HarmonyFidelisHarmonyFidelis
Entrar
NotíciasGrandes projetosAtoresAcademia

Python 3.13: o GIL se torna opcional (modo free-threading experimental)

A versão 3.13 do Python introduz o modo Free-threaded, que permite executar threads em verdadeiro paralelismo em arquiteturas multinúcleo.

Source: peps.python.org

Python 3.13: o GIL se torna opcional (modo free-threading experimental)

A fundação Python publicou o Python 3.13 no início do mês de outubro de 2024. A principal evolução técnica desta versão é a introdução do modo «Free-threaded» definido na implementação da PEP 703, que desativa o GIL (Global Interpreter Lock).

Em termos claros

Até agora, um interpretador Python funcionava como uma sala por onde circula um único microfone: várias threads podiam coexistir, mas apenas uma falava por vez, porque o GIL as impedia de executar bytecode simultaneamente. Em uma máquina com vários núcleos, isso equivalia a deixar parte da potência disponível sem uso assim que um programa tentava calcular em paralelo. O Python 3.13 torna esse bloqueio opcional: o interpretador pode agora ser compilado de modo a distribuir a carga de cálculo por todos os núcleos físicos disponíveis, sem criar um bloqueio. A ressalva é importante: o recurso é oferecido a título experimental, o GIL permanece ativo por padrão e as bibliotecas desenvolvidas em C precisam ser adaptadas. Trata-se, portanto, do início de uma transição, e não de uma mudança imediata.

Ficha da versão

ParâmetroValor
VersãoPython 3.13
Editorfundação Python
Publicaçãoinício do mês de outubro de 2024
Principal evolução técnicaintrodução do modo «Free-threaded»
EspecificaçãoPEP 703 — Making the Global Interpreter Lock Optional in CPython
Efeito técnicodesativação do GIL (Global Interpreter Lock)
Implementaçãocompilação do interpretador pelo desenvolvedor
Situaçãoexperimental — o GIL permanece ativo por padrão
Pré-requisito do ecossistemaadaptação das bibliotecas desenvolvidas em C
Alcance pretendidoexecução de threads em verdadeiro paralelismo em arquiteturas multinúcleo

Explicação técnica

1. O que o GIL travava — Historicamente, o GIL impedia que várias threads de um mesmo interpretador Python executassem bytecode simultaneamente.

2. O custo nos processadores multinúcleo — Essa restrição limitava fortemente o desempenho das aplicações em paralelo em processadores multinúcleo.

3. O que o modo Free-threaded permite — Com esta versão, os desenvolvedores têm a possibilidade de compilar o interpretador de modo a distribuir a carga de cálculo por todos os núcleos físicos disponíveis, sem criar um bloqueio.

Antes e depois

AspectoInterpretador com GILModo Free-threaded (Python 3.13)
Execução do bytecodeuma única thread de um mesmo interpretador por vezthreads em verdadeiro paralelismo
Núcleos aproveitadosdesempenho das aplicações em paralelo fortemente limitado em processadores multinúcleocarga de cálculo distribuída por todos os núcleos físicos disponíveis
Bloqueiotrava global sobre a execução do bytecodenenhum bloqueio introduzido
Ativaçãocomportamento padrãocompilação dedicada do interpretador, a título experimental
Bibliotecas desenvolvidas em Ccomportamento históricoadaptação necessária

Cadeia causal

GIL historicamente presente no interpretador → uma única thread executa bytecode por vez → desempenho das aplicações em paralelo fortemente limitado em processadores multinúcleo → PEP 703: tornar a trava opcional → o Python 3.13 introduz o modo Free-threaded → o interpretador pode ser compilado para distribuir o cálculo por todos os núcleos físicos disponíveis → adaptação das bibliotecas desenvolvidas em C → transição do ecossistema Python rumo a uma plena otimização multinúcleo

Limites e alcance

Embora esse recurso seja oferecido a título experimental (o GIL permanece ativo por padrão) e exija a adaptação das bibliotecas desenvolvidas em C, este lançamento inicia a transição do ecossistema Python rumo a uma plena otimização multinúcleo.

Fontes

Referências verificadas durante a auditoria factual de agosto de 2026: são as páginas
com as quais as afirmações deste boletim foram confrontadas.

  1. PEP 703 — Making the Global Interpreter Lock Optional in CPython
  2. What's New In Python 3.13 — documentação oficial
  3. Python 3.13.0 release — python.org