Python: i thread (modulo multithreading)

I thread

La creazione di un nuovo processo non è sempre la vera necessità quando si deve “spezzare” la computazione tra più perceorsi di esecuzione. Il fatto che un processo sia isolato dagli altri, caratteristica molto importante e sfruttata anche dal punto di vista della sicurezza[^1]. Spesso tuttavia la necessità è quella di avere un sistema di condivisione delle risorse, quali il codice o i file aperti, consentendo tuttavia di avere dei percorsi di calcolo separati. La definizione di un percorso di calcolo consente di definire un thread.

percorsi di esecuzione

Un percorso di esecuzio (o di calcolo) è tutto ciò che serve per poter effettuare una istruzione all’interno di un programma. Registri, Program counter, flag, stack rappresentano il set minimo di informazioni necessarie per l’esecuzione di una istruzione.

Le altre informazioni presenti nel processo, prima fra tutte la sezione di memoria (read only) che contiene il codice, sarà condivisa. Quello che conta sono i valori definiti prima, registri e program counter prima di tutto.

Un Thread sarà una struttura dati presente in memoria che contiene tutte e sole le informazioni necessarie a descrivere un percorso di esecuzione.

Ogni singolo thread condividerà poi con tutti gli altri thread generati da un processo le altre informazioni. In questo modo se si dovesse decidere di generare un nuovo thread, l’ operazione sarà molto più performante

Andrea Pollini

Matematico, informatico.