python中主线程等待子线程完成的实现(join())
2016-03-21 20:21
676 查看
有时候遇到多程程处理的场景,主线程要等待子线程完成数据解析,然后主线程才利用子线程的数据做下一步操作,那么python的实现方式是在主线程中调用子线程的join方法,这样主线程在子线程完成之前就会一直堵塞了。
只需要在主线程调用子线程的join()方法即可,那么如果线程很多很多,只需要把子线程append到一个列表中,然后迭代出来调用join()
import thread import threading import time ######################################################################## class MyThread(threading.Thread): """""" #---------------------------------------------------------------------- def __init__(self,name): """Constructor""" threading.Thread.__init__(self) self.name = name def run(self): time.sleep(2) print self.name,'down!' if __name__ == '__main__': t = MyThread('thread00') t2 = MyThread('thread01') t.start() t2.start() t.join() t2.join() print 'succeed!'
只需要在主线程调用子线程的join()方法即可,那么如果线程很多很多,只需要把子线程append到一个列表中,然后迭代出来调用join()
相关文章推荐