1. 程式人生 > >python 實現多執行緒併發執行 【join函式】

python 實現多執行緒併發執行 【join函式】

主執行緒啟動一個子執行緒t並等到t執行緒結束後才執行:

import threading
import time

def reading():
    for i in range(5):
        print("reading", i)
        time.sleep(1)


t = threading.Thread(target = reading)
t.setDaemon(True)
t.start()
t.join()
print("The End")

執行結果為:

reading 0
reading 1
reading 2
reading 3
reading 4
The End

由此可見主執行緒啟動子執行緒t執行reading函式 t.join阻塞主執行緒,一直等到t執行緒執行完畢後才結束t執行緒結束才執行主執行緒輸出the end。

在子執行緒啟動另外一個子執行緒,並等待子執行緒結束後才繼續執行:

import threading
import time

def reading():
    for i in range(5):
        print("reading", i)
        time.sleep(1)

def test():
    r = threading.Thread(target=reading)
    r.setDaemon(True)
    r.start()
    r.join()
    print("test end")



t = threading.Thread(target = test)
t.setDaemon(True)
t.start()
t.join()
print("The End")

執行結果:

reading 0
reading 1
reading 2
reading 3
reading 4
test end
The End

由此可見主執行緒啟動t執行緒後t.join會等待t執行緒結束,在test中再次啟動r子執行緒,r子執行緒加入r.join而阻塞t執行緒,知道r程序結束,然後才顯示test end,然後t執行緒結束再次結束t.join。主執行緒顯示The End 結束。