GIL (Global Interpreter Lock) è un blocco di un linguaggio di programmazione Python che previene l’esecuzione di più di un thread di byte nativo alla volta in un singolo processo.
A causa di GIL, anche se il tuo computer ha molteplici core CPU, Python consente solo a un thread per volta di essere eseguito. Ciò significa che l’esecuzione di thread multipli non ti renderà il codice più veloce, e in realtà potrebbe renderlo più lento, a causa dell’overhead di gestione dei thread.
E’ importante notare che GIL non è un problema per tutti i programmi Python. Se il tuo programma è principalmente I/O-bound (ad esempio, se aspetta la risposta di un database o di un servizio web), l’utilizzo di thread multipli può effettivamente migliorare le prestazioni, poiché un thread può aspettare la risposta di un servizio mentre un altro thread può continuare a lavorare.
Tuttavia, se il programma è CPU-bound (ad esempio, se esegue calcoli complessi su grandi set di dati), allora GIL sarà un ostacolo e l’utilizzo di processi multipli, piuttosto che thread multipli, sarà la soluzione più efficace.