é possibile creare processi in parallelo

sintassi
occorre come prima cosa creare una classe che eredi da Thread

import threading importo modulo Thread


class MiaClasse (threading.Thread): definiamo la classe che eredita Thread

def __init__(self, parametri): definizione del costruttore
threading.Thread.__init__(self) setto come tread
self.parametro = parametro
...

def run(self): definizione della funzione quando si esegue il start
...


comandi che eseguono i processi thread
oggettotread = MiaClasse(parametri) creo un oggetto tread usando la classe creata
oggettotread.start() eseguo l'oggetto in un tread e passo al codice successivo direttamente
oggettotread.join() attendo che il processo sia finito


esempio: creo 3 thread semplici che temporizzano in base a un numero casuale da 1 a 10
import threading importo modulo Thread
import random importo libreria per numeri casuali
import time importo libreria per temporizzare


# classe
class IlMioThread (threading.Thread):

def __init__(self, nome, durata): definizione costruttore con i parametri
threading.Thread.__init__(self)
self.nome = nome
self.durata = durata

def run(self): codie da eseguire quando si esegue il start()
print ("Thread '" + self.name + "' avviato\n")
time.sleep(self.durata)
print ("Thread '" + self.name + "' terminato")


# creazione dei 3 thread
thread1 = IlMioThread("Thread-1", random.randint(1,10))
thread2 = IlMioThread("Thread-2", random.randint(1,10))
thread3 = IlMioThread("Thread-3", random.randint(1,10))

# avvio dei 3 thread
thread1.start()
thread2.start()
thread3.start()

# attendo che siano finiti
thread1.join()
thread2.join()
thread3.join()

# fine dello script
print("Fine")