La fondation Python a publié Python 3.13 au début du mois d'octobre 2024. L'évolution technique majeure de cette version est l'introduction du mode « Free-threaded » défini dans l'implémentation de la PEP 703, qui désactive le GIL (Global Interpreter Lock).
En clair
Jusqu'à présent, un interpréteur Python fonctionnait comme une salle où circule un micro unique : plusieurs threads pouvaient coexister, mais un seul prenait la parole à la fois, car le GIL leur interdisait d'exécuter du bytecode simultanément. Sur une machine à plusieurs cœurs, cela revenait à laisser une partie de la puissance disponible inutilisée dès qu'un programme cherchait à calculer en parallèle. Python 3.13 rend ce verrou optionnel : l'interpréteur peut désormais être compilé de façon à répartir la charge de calcul sur tous les cœurs physiques disponibles, sans créer de blocage. La réserve est de taille — la fonctionnalité est proposée à titre expérimental, le GIL reste actif par défaut, et les bibliothèques développées en C doivent être adaptées. Il s'agit donc du début d'une transition, pas d'un basculement immédiat.
Fiche de version
| Paramètre | Valeur |
|---|---|
| Version | Python 3.13 |
| Éditeur | fondation Python |
| Publication | début du mois d'octobre 2024 |
| Évolution technique majeure | introduction du mode « Free-threaded » |
| Spécification | PEP 703 — Making the Global Interpreter Lock Optional in CPython |
| Effet technique | désactivation du GIL (Global Interpreter Lock) |
| Mise en œuvre | compilation de l'interpréteur par le développeur |
| Statut | expérimental — le GIL reste actif par défaut |
| Prérequis écosystème | adaptation des bibliothèques développées en C |
| Portée visée | exécution de threads en véritable parallèle sur les architectures multicœurs |
Explication technique
1. Ce que verrouillait le GIL — Historiquement, le GIL empêchait plusieurs threads d'un même interpréteur Python d'exécuter du bytecode simultanément.
2. Le coût sur les processeurs multicœurs — Cette contrainte limitait fortement les performances des applications en parallèle sur des processeurs multicœurs.
3. Ce que permet le mode Free-threaded — Avec cette version, les développeurs ont la possibilité de compiler l'interpréteur de manière à répartir la charge de calcul sur tous les cœurs physiques disponibles, sans créer de blocage.
Avant et après
| Aspect | Interpréteur avec GIL | Mode Free-threaded (Python 3.13) |
|---|---|---|
| Exécution du bytecode | un seul thread d'un même interpréteur à la fois | threads en véritable parallèle |
| Cœurs exploités | performances des applications en parallèle fortement limitées sur les processeurs multicœurs | charge de calcul répartie sur tous les cœurs physiques disponibles |
| Blocage | verrou global sur l'exécution du bytecode | aucun blocage introduit |
| Activation | comportement par défaut | compilation dédiée de l'interpréteur, à titre expérimental |
| Bibliothèques développées en C | comportement historique | adaptation requise |
Chaîne causale
GIL présent historiquement dans l'interpréteur → un seul thread exécute du bytecode à la fois → performances des applications en parallèle fortement limitées sur les processeurs multicœurs → PEP 703 : rendre le verrou optionnel → Python 3.13 introduit le mode Free-threaded → l'interpréteur peut être compilé pour répartir le calcul sur tous les cœurs physiques disponibles → adaptation des bibliothèques développées en C → transition de l'écosystème Python vers une pleine optimisation multicœurs
Limites et portée
Bien que cette fonctionnalité soit proposée à titre expérimental (le GIL reste actif par défaut) et requiert l'adaptation des bibliothèques développées en C, cette sortie entame la transition de l'écosystème Python vers une pleine optimisation multicœurs.
Sources
Références vérifiées lors de l'audit factuel d'août 2026 : ce sont les pages
contre lesquelles les affirmations de ce bulletin ont été confrontées.
