Python 3.14 libère Python du GIL !

Par:
francoistonic

mar, 14/10/2025 - 17:39

Depuis Python 3.13, le langage était plus souple sur le Global Interpreter Lock (GIL) pour pouvoir faire du code multithreadé et paralléliser son exécution sur plusieurs coeurs. Il s'agissait de la nouveauté free-threads CPython.

La nouveauté était présentée ainsi : CPython expérimente l'exécution dans un mode free-threaded avec le GIL désactivé. Il s'agit de pouvoir utiliser toute la puissance processeur disponible pour exécuter les threads en mode parallèle sur les coeurs CPU disponibles. Dans cette version, l'équipe mettait en garde sur le côté expérimental. Avec la 3.14, les choses changent. Le free-thread devient une fonctionnalité officielle. Le principe reste identique à la 3.13. Avec la 3.14, on peut donc builder un projet sans GIL : GIL=0

Mais attention : ce n'est pas parce que vous désactivez le GIL que votre code sera de facto pour rapide. Cela dépend de la qualité et de la structure du code, de la conception de vos threads, des librairies capables d'exploiter ce mode d'exécution. Les résultats seront donc contrastés. La développeuse Hannah de Scotiobank a réalisé divers tests avec et sans GIL. 

Les gains sont parfois limités, dans certains cas, il faut réécrire le code. Par défaut, GIL reste actif. Vous devez d'abord faire un --disable-gil lors de la compilation. De nombreuses librairies C considèrent que GIL est présent et elles ne sont pas forcément adaptés à un usage sans cette option. A voir comment cette libération sera prise en compte et utilisée.