我有一组任务要并行执行,但在它们结束时,我需要知道是否有任何线程抛出异常。 我并不需要直接处理异常,我只需要知道,如果一个线程的失败,一个例外,这样我就可以干净地终止脚本检查是否有python线程抛出异常
下面是一个简单的例子:
#!/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"
在“结束”之前,我想遍历线程,查看是否有任何失败,然后决定是否可以继续使用该脚本,或者如果我需要在此时退出。
我不需要拦截异常或停止其他线程,我只需要知道最后是否有失败。