python中主线程等待子线程完成的实现(join())

有时候遇到多程程处理的场景,主线程要等待子线程完成数据解析,然后主线程才利用子线程的数据做下一步操作,那么python的实现方式是在主线程中调用子线程的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()

你可能感兴趣的:(python中主线程等待子线程完成的实现(join()))