Se n'è parlato tante volte... http://forum.html.it/forum/showthrea...hreadid=887694
Occhio che qui non stai più parlando di variabili globali in sé, ma da accesso da thread diversi ai medesimi dati (che possono essere globali o meno), una problematica correlata ma indipendente.Originariamente inviato da Scara95
CPython sembra permettere l'uso di più interpreti in parallelo, che in realtà non funzionano in parallelo in quanto un solo pezzo di codice viene eseguito alla volta e i vari processi si contendono l'uso dell'interprete, questo per l'utilizzo di variabili globali...
Inoltre, i vari processi Python sono completamente indipendenti e girano in parallelo; il problema di CPython è il GIL (Global Interpreter Lock), che (in parte) impedisce l'esecuzione parallela di più thread all'interno dello stesso interprete dato che c'è un unico lock per tutte le strutture dati condivise dell'interprete (e se scrivi un interprete per forza c'è un suo stato globale - sia che lo passi in giro come parametro, sia come global); è possibile rendere più granulare il lock (per Python 2.qualcosa ci fosse una patch del genere), ma pare che nel caso di CPython peggiorasse molto le prestazioni per via delle continue acquisizioni/rilasci dei vari lock.