Global Interpreter Lock (GIL) es un mecanismo utilizado en los intérpretes de algunos lenguajes de programación, incluido Python, para sincronizar la ejecución de threads en un solo subproceso de manera que solo un subproceso nativo pueda ejecutarse a la vez en un proceso.
GIL es necesario debido a la gestión de memoria de CPython (la implementación estándar de Python). Sin el GIL, el acceso concurrente a los objetos de Python puede causar problemas, ya que las operaciones pueden tornarse no atómicas. Esencialmente, el GIL impide que varios subprocesos nativos de C llamados desde Python se ejecuten simultáneamente en un mismo proceso, evitando así la competencia por recursos, como la memoria.
Un efecto secundario importante de GIL es que puede limitar la utilización de Python en sistemas multiprocesadores y multithreading. Ya que el GIL permite que solo un subproceso se ejecute a la vez dentro del intérprete de Python, esto puede limitar el rendimiento y la eficacia del código Python en sistemas con múltiples núcleos de CPU.