HarmonyFidelisHarmonyFidelis
Anmelden
NachrichtenGroßprojekteAkteureAkademie

Python 3.13: Das GIL wird optional (experimenteller Free-Threading-Modus)

Python 3.13 führt den Free-threaded-Modus ein, der die Ausführung von Threads in echter Parallelität auf Mehrkernarchitekturen ermöglicht.

Source: peps.python.org

Python 3.13: Das GIL wird optional (experimenteller Free-Threading-Modus)

Die Python Foundation hat Python 3.13 Anfang Oktober 2024 veröffentlicht. Die wesentliche technische Neuerung dieser Version ist die Einführung des in der Umsetzung von PEP 703 definierten Modus „Free-threaded“, der das GIL (Global Interpreter Lock) deaktiviert.

Klartext

Bislang funktionierte ein Python-Interpreter wie ein Raum, in dem ein einziges Mikrofon herumgereicht wird: Mehrere Threads konnten nebeneinander bestehen, doch nur einer kam jeweils zu Wort, denn das GIL hinderte sie daran, gleichzeitig Bytecode auszuführen. Auf einer Maschine mit mehreren Kernen blieb damit ein Teil der verfügbaren Rechenleistung ungenutzt, sobald ein Programm parallel rechnen wollte. Python 3.13 macht diese Sperre optional: Der Interpreter lässt sich nun so kompilieren, dass er die Rechenlast auf alle verfügbaren physischen Kerne verteilt, ohne eine Blockade zu erzeugen. Der Vorbehalt wiegt schwer — die Funktion wird versuchsweise angeboten, das GIL bleibt standardmäßig aktiv, und in C entwickelte Bibliotheken müssen angepasst werden. Es handelt sich also um den Beginn eines Übergangs, nicht um eine sofortige Umstellung.

Versionsübersicht

ParameterWert
VersionPython 3.13
HerausgeberPython Foundation
VeröffentlichungAnfang Oktober 2024
Wesentliche technische NeuerungEinführung des Modus „Free-threaded“
SpezifikationPEP 703 — Making the Global Interpreter Lock Optional in CPython
Technische WirkungDeaktivierung des GIL (Global Interpreter Lock)
UmsetzungKompilierung des Interpreters durch die Entwickler
Statusexperimentell — das GIL bleibt standardmäßig aktiv
Voraussetzung im ÖkosystemAnpassung der in C entwickelten Bibliotheken
Angestrebte ReichweiteAusführung von Threads in echter Parallelität auf Mehrkernarchitekturen

Technische Erläuterung

1. Was das GIL sperrte — Historisch hinderte das GIL mehrere Threads desselben Python-Interpreters daran, gleichzeitig Bytecode auszuführen.

2. Die Kosten auf Mehrkernprozessoren — Diese Einschränkung begrenzte die Leistung paralleler Anwendungen auf Mehrkernprozessoren erheblich.

3. Was der Free-threaded-Modus ermöglicht — Mit dieser Version haben Entwickler die Möglichkeit, den Interpreter so zu kompilieren, dass die Rechenlast auf alle verfügbaren physischen Kerne verteilt wird, ohne eine Blockade zu erzeugen.

Vorher und nachher

AspektInterpreter mit GILFree-threaded-Modus (Python 3.13)
Bytecode-Ausführungjeweils nur ein Thread desselben InterpretersThreads in echter Parallelität
Genutzte KerneLeistung paralleler Anwendungen auf Mehrkernprozessoren erheblich begrenztRechenlast auf alle verfügbaren physischen Kerne verteilt
Blockadeglobale Sperre der Bytecode-Ausführungkeine Blockade erzeugt
AktivierungStandardverhalteneigens kompilierter Interpreter, versuchsweise
In C entwickelte Bibliothekenbisheriges VerhaltenAnpassung erforderlich

Kausalkette

GIL historisch im Interpreter vorhanden → jeweils nur ein Thread führt Bytecode aus → Leistung paralleler Anwendungen auf Mehrkernprozessoren erheblich begrenzt → PEP 703: die Sperre optional machen → Python 3.13 führt den Free-threaded-Modus ein → der Interpreter kann so kompiliert werden, dass die Berechnung auf alle verfügbaren physischen Kerne verteilt wird → Anpassung der in C entwickelten Bibliotheken → Übergang des Python-Ökosystems zu einer vollständigen Mehrkernoptimierung

Grenzen und Reichweite

Obwohl diese Funktion versuchsweise angeboten wird (das GIL bleibt standardmäßig aktiv) und die Anpassung der in C entwickelten Bibliotheken erfordert, leitet diese Veröffentlichung den Übergang des Python-Ökosystems zu einer vollständigen Mehrkernoptimierung ein.

Quellen

Im Rahmen der Faktenprüfung vom August 2026 verifizierte Referenzen: Dies sind die Seiten,
an denen die Aussagen dieses Bulletins überprüft wurden.

  1. PEP 703 — Making the Global Interpreter Lock Optional in CPython
  2. What's New In Python 3.13 — offizielle Dokumentation
  3. Python 3.13.0 release — python.org