python多執行緒中的join()
阿新 • • 發佈:2018-12-16
先看一個例子,該例子沒用到join。
新增一個執行緒,輸出“start”和“finish”標記執行緒的開始和結束。執行緒added_thread和執行緒main同時執行,其中added_thread消耗較長的時間(通過執行緒sleep模擬)。mian執行結束後,added_thread才執行完畢。
import threading import time; def job(): print("T1 start \n") time.sleep(1) print("T1 finish \n") def main(): added_thread=threading.Thread(target=job,name="T1") added_thread.start() print("all done\n") if __name__ == '__main__': main()
執行結果:
T1 start
all done
>>> T1 finish
join使得執行緒main等待added_thread執行完畢後才結束。
下面的例子只比上例多了一行程式碼added_thread.join()。
import threading import time; def job(): print("T1 start \n") time.sleep(1) print("T1 finish \n") def main(): added_thread=threading.Thread(target=job,name="T1") added_thread.start() added_thread.join() print("all done\n") if __name__ == '__main__': main()
執行結果:
T1 start
T1 finish
all done