Non sai cos’è Python GIL?  Questo potrebbe essere il tutorial più semplice |  di Christopher Tao |  Febbraio 2024

 | Intelligenza-Artificiale

Illustrazione del threading, dell’elaborazione e del GIL di Python mediante diagrammi

Non scappare se stai imparando Python, perché questo articolo ha lo scopo di spiegarti nel modo più semplice cos’è GIL. Naturalmente, si deve iniziare spiegando cosa sono i thread e i processi. Non preoccuparti, farò del mio meglio per renderlo più semplice per tutti, anche se ciò sacrificherà una certa accuratezza della definizione.

Ora dovremmo iniziare.

Immagine di Steen Jepsen da Pixabay

Alcuni concetti

Il multithreading è una delle tecniche di programmazione più comuni, che esiste anche in Python.

Ci consente di eseguire più operazioni contemporaneamente. Di solito, il multi-threading può creare maggiore efficienza nell’utilizzo della CPU. Inoltre, la maggior parte delle attività di I/O possono trarre vantaggio dall’esecuzione simultanea dei thread.

Per favore, non confondetevi sui concetti”processi” E “filo”. A un processo verrà allocata una certa memoria ed è completamente isolato dagli altri processi in un sistema operativo. Pertanto, un programma schiacciato nel nostro sistema operativo di solito non avrà alcun impatto sugli altri.

Relazioni tra processi e thread

UN processi poter avere più thread correndo sotto di esso, condividendo molte delle stesse risorse come la memoria. Pertanto, un filo schiacciato causerà lo schiacciamento dell’intero processo. Poiché i thread condividono la memoria tra loro, potrebbero anche creare problemi nel processo. Lo dimostrerò più tardi.

Esempio di codice

Vediamo ora come scrivere codice Python con la tecnica del multi-threading.

Per prima cosa importiamo il file threading modulo integrato in Python.

import threading

Per poter testare il multi-threading, definiamo una funzione abbastanza semplice ma che richiederà del tempo.

def compute()…

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *