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
| Parameter | Wert |
|---|---|
| Version | Python 3.13 |
| Herausgeber | Python Foundation |
| Veröffentlichung | Anfang Oktober 2024 |
| Wesentliche technische Neuerung | Einführung des Modus „Free-threaded“ |
| Spezifikation | PEP 703 — Making the Global Interpreter Lock Optional in CPython |
| Technische Wirkung | Deaktivierung des GIL (Global Interpreter Lock) |
| Umsetzung | Kompilierung des Interpreters durch die Entwickler |
| Status | experimentell — das GIL bleibt standardmäßig aktiv |
| Voraussetzung im Ökosystem | Anpassung der in C entwickelten Bibliotheken |
| Angestrebte Reichweite | Ausfü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
| Aspekt | Interpreter mit GIL | Free-threaded-Modus (Python 3.13) |
|---|---|---|
| Bytecode-Ausführung | jeweils nur ein Thread desselben Interpreters | Threads in echter Parallelität |
| Genutzte Kerne | Leistung paralleler Anwendungen auf Mehrkernprozessoren erheblich begrenzt | Rechenlast auf alle verfügbaren physischen Kerne verteilt |
| Blockade | globale Sperre der Bytecode-Ausführung | keine Blockade erzeugt |
| Aktivierung | Standardverhalten | eigens kompilierter Interpreter, versuchsweise |
| In C entwickelte Bibliotheken | bisheriges Verhalten | Anpassung 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.
