Python ĆØ un linguaggio di programmazione di alto livello.
Recentemente ĆØ arrivata la notizia che il Il comitato direttivo del progetto Python ha annunciato la volontĆ di approvare il Proposta di estensione del linguaggio Python Ā«PEP-0703ā³, rendendo facoltativo il blocco dell'interprete globale in CPython e che sostanzialmente definisce l'incorporamento della modalitĆ di compilazione CPython senza Global Interpreter Lock (GIL).
PEP-0703 definisce di smettere di usare GIL per impostazione predefinita, ma aggiungi l'opzione di compilazione "āsin-gil" per disabilitarla. Come stail La nuova modalitĆ dovrebbe risolvere il problema con la parallelizzazione di operazioni su sistemi multi-core, causato dal fatto che il blocco globale non consente l'accesso parallelo a oggetti condivisi da thread diversi.
Si dice che a lungo termine (dopo 5 anni), shell ĆØ pianificato per essere modificato per impostazione predefinita solo in modalitĆ globale non bloccante, eliminando allo stesso tempo il supporto per la compilazione con GIL.
Grazie a tutti per aver risposto al sondaggio sulla proposta no-GIL. Ć chiaro che il sentimento generale ĆØ positivo, sia per l'idea generale che per il PEP 703 in particolare. Anche il Consiglio di amministrazione ĆØ ampiamente positivo su entrambi. Intendiamo accettare PEP 703, anche se stiamo ancora elaborando i dettagli dell'accettazione.
Come abbiamo fatto alcune volte in passato, vogliamo comunicare la nostra intenzione di accettare il PEP insieme al nostro pensiero attuale sui dettagli relativi all'accettazione.
A parte quello, Si dice che le modifiche che dovrebbero essere effettuate in tre fasi, che sono a breve, medio e lungo termine. Dato che nella prima fase, disabilitare GIL per impostazione predefinita non è pratico a causa del sovraccarico associato alle modifiche al Garbage Collector, al sistema di gestione della memoria e alle primitive per l'organizzazione dei blocchi. Ad esempio, a causa dell'uso del conteggio dei riferimenti per l'isolamento dei thread, si verifica un calo delle prestazioni per gli script a thread singolo (nella suite di test pyperformance del 10%). Allo stesso tempo, potrebbe essere necessario disabilitare il GIL nel calcolo scientifico, per il quale la mancanza di parallelizzazione è un problema più grave della velocità lineare di esecuzione del codice.
Nella seconda fase, sostanzialmente, si attenderĆ la conferma. e che ci sia un sostegno sufficiente da parte della comunitĆ in modo che l'uso di "non GIL ĆØ fattibile" e assicurati che la build senza GIL sia supportata ma non predefinita.
Nell'ultima fase, no-GIL sarĆ giĆ il valore predefinito e qualsiasi traccia di GIL verrĆ rimossa (senza rompere inutilmente la compatibilitĆ con le versioni precedenti).
Si osserva che il lavoro per allontanarsi da GIL sarĆ fatto con molta attenzione per non ripetere l'errore cosa ĆØ successo durante la promozione Python 3: una build non GIL dovrĆ garantire la compatibilitĆ con le versioni precedenti di Python e qualsiasi modifica al codice di terze parti richiesta per funzionare su build non GIL dovrebbe funzionare anche su build GIL.
Non ci sono piani per rinumerare le versioni in Python 4 per build non GIL, poiché manterranno la compatibilità ABI.
Durante tutto il processo, noi (gli sviluppatori principali, non solo l'SC) dovremo rivalutare i progressi e le tempistiche suggerite. Non vogliamo che questa diventi un'altra lotta decennale per la compatibilitĆ con le versioni precedenti e vogliamo essere in grado di annullare PEP 703 e trovare un'altra soluzione se sembra diventare problematico, quindi dobbiamo controllare regolarmente che valga la pena continuare a lavorare.
Ci auguriamo che questo fornisca un po' di chiarezza sul futuro del PEP mentre elaboriamo i dettagli esatti dell'accettazione. L'SC lavorerĆ per finalizzare l'accettazione nelle prossime settimane.
Prima della transizione completa alle build non GIL, prevediamo di ottenere il pieno supporto della community per queste build, oltre a fornire ulteriori API C e API Python per abilitare il multithreading sicuro nel codice esistente.
Infine, come giĆ accennato, si prevede che il passaggio al terzo stadio possa avvenire tra almeno 5 anni e la data probabile per PEP-0703 ĆØ il rilascio di Python 3.13, previsto per il prossimo autunno.
Se si interessati a saperne di più, puoi controllare i dettagli nel seguente link