Ho una serie di attività da eseguire in parallelo, ma alla fine di esse, ho bisogno di sapere se uno qualsiasi dei thread ha generato un'eccezione. Non ho bisogno di gestire direttamente l'eccezione, ho solo bisogno di sapere se uno dei fili non riuscita con un'eccezione, in modo da poter in modo pulito terminare lo scriptControlla se un thread python ha generato un'eccezione
Ecco un semplice esempio:
#!/usr/bin/python
from time import sleep
from threading import Thread
def func(a):
for i in range(0,5):
print a
sleep(1)
def func_ex():
sleep(2)
raise Exception("Blah")
x = [Thread(target=func, args=("T1",)), Thread(target=func, args=("T2",)), Thread(target=func_ex, args=())]
print "Starting"
for t in x:
t.start()
print "Joining"
for t in x:
t.join()
print "End"
Prima di "Fine", voglio ripetere i thread, vedere se c'è qualche errore, e poi decidere se posso continuare con lo script, o se devo uscire a questo punto.
Non ho bisogno di intercettare l'eccezione o di interrompere gli altri thread, ho solo bisogno di sapere alla fine se qualche errore.