Il modulo threading di Python è utilizzato per creare più thread in un unico processo.
Utilizzare il modulo threading in Python ti permette di eseguire le codice simultaneamente. Ecco un esempio su come si può utilizzare:
```
import threading
def print_letters(): for letter in ‘abcdefghij’: print(letter)
Nell’esempio qui sopra, i numeri da 0 a 9 e le lettere da ‘a’ a ‘j’ verranno stampati in un ordine indeterminato, poiché l’ordine esatto dipende da come l’OS decide di programmare i due thread.
Alcune considerazioni su threading:
- Il threading può rendere il codice più complicato e più difficile da ragionare, quindi dovrebbe essere evitato se non è strettamente necessario.
- Multithreading non sempre accelera il tuo codice. Il CPython nella sua implementazione standard (GIL – Global Interpreter Lock) non permette l’esecuzione di più thread python nello stesso momento, quindi per i task CPU-bound i thread Python possono addirittura rallentare il codice.
- I thread sono molto utili per i task I/O-bound.
Attenzione! Il codice multithread può essere molto difficile da ottenere correttamente, quindi la maggior parte dei programmatori consiglia di evitarlo se possibile. Se si decide di utilizzare i thread, è molto importante fare attenzione all’accesso alle risorse condivise per evitare le condizioni di gara.