python中主執行緒等待子執行緒完成的實現(join())
阿新 • • 發佈:2019-02-18
有時候遇到多程程處理的場景,主執行緒要等待子執行緒完成資料解析,然後主執行緒才利用子執行緒的資料做下一步操作,那麼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()