Le GIL (Global Interpreter Lock) est un mécanisme de verrouillage qui est intégré à l’interpréteur Python standard, également connu sous le nom de CPython. C’est une sorte de mutex ou de sémaaphore qui permet à un seul thread d’exécuter du code Python à la fois dans un processus unique, même sur les systèmes multiprocesseurs et multithreads.
Cela signifie qu’en Python multithreadé standard, bien que plusieurs threads puissent être définis pour démarrer et s’exécuter en parallèle, en réalité, ils ne s’exécutent pas réellement en parallèle, et s’exécutent plutôt de manière sequentielle sur un seul cœur de CPU à la fois.
Le GIL est nécessaire parce que l’implémentation standard de Python n’est pas thread-safe. La famille de collecteurs de déchets de C-Python utilise des fils à mémoire partagée et qui doivent être protégés par un GIL pour garantir qu’ils fonctionnent correctement.