1. 程式人生 > >python多執行緒中的join()

python多執行緒中的join()

    先看一個例子,該例子沒用到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