首頁 >後端開發 >Python教學 >python的線程join怎麼用

python的線程join怎麼用

(*-*)浩
(*-*)浩原創
2019-07-03 10:47:542516瀏覽

join的作用就凸顯出來了,join所完成的工作就是執行緒同步,也就是主執行緒任務結束之後,進入阻塞狀態,一直等待其他的子執行緒執行結束後,主執行緒在終止。

python的線程join怎麼用

join有一個timeout參數:(推薦學習:Python影片教學

當設定守護線程時,意義是主線程對於子線程等待timeout的時間將會殺死該子線程,最後退出程式。所以說,如果有10個子線程,全部的等待時間就是每個timeout的累加和。簡單的來說,就是給每個子執行緒一個timeout的時間,讓他去執行,時間一到,不管任務有沒有完成,直接殺死。

沒有設定守護線程時,主線程將會等待timeout的累加和這樣的一段時間,時間一到,主線程結束,但是並沒有殺死子線程,子線程依然可以繼續執行,直到子執行緒全部結束,程式退出。

join的作用

import threading
import time

def run():

    time.sleep(2)
    print('当前线程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('这是主线程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.setDaemon(True)
        t.start()

    for t in thread_list:
        t.join()

    print('主线程结束了!' , threading.current_thread().name)
    print('一共用时:', time.time()-start_time)

更多Python相關技術文章,請造訪Python教學欄位學習!

以上是python的線程join怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn