Python多執行緒(1) 介紹

2021-08-05 20:17:42 字數 2109 閱讀 7513

**: 

python對多執行緒提供了很好的支援,python中多執行緒相關的模組包括:thread,threading,queue。可以方便地支援建立執行緒、互斥鎖、訊號量、同步等特性。

1. thread:多執行緒的底層支援模組,除了其中提供的 lock 原語外,一般不建議使用。

2. threading:基於 thread 模組,將一些執行緒的操作物件化,該模組提供下列類:

3. queue:實現了多生產者(producer)、多消費者(consumer)的佇列,支援鎖原語,能夠在多個執行緒之間提供很好的同步支援。提供的類:

python執行緒系列包括以下部分:

本文將介紹python執行緒中的主角,threading.thread 物件。

thread in python

1.1 thread物件的建立

通過例項化thread型別獲得乙個thread物件:

1

threading.thread(name=none, target=none, args=(), kwargs={})

引數的含義:

1.2 thread物件的方法 1

t.getname()

返回執行緒當前的名字。

1

t.setname(name)

設定執行緒的名字,執行緒的名稱並不要求唯一。

1

t.isalive()

判斷這個執行緒是否還在執行中(active)——已經呼叫了start() 而 run() 還沒有執行結束。

1

t.isdaemon()

判斷執行緒是不是乙個daemon執行緒,初始狀態下,執行緒 t1 只有在建立自己的執行緒 t0 是daemon時,自己才是daemon的。

1

t.setdaemon(daemonic)

把執行緒的daemon標誌設為daemonic(真或假)

daemon 執行緒是指,即使這個執行緒 t 的狀態是 active,python也可以終止 t(可能是通過終止 t 所在的程序);非daemon執行緒沒有終止前,python會一直保持執行直到其終止。

setdaemon()需要在start()之前呼叫。

1

t.join(timeout=none)

這個函式需要注意,比如在乙個執行緒 t1 的執行流程中呼叫 t2.join(),則 t1 阻塞直到 t2 執行緒執行結束,如果指定 timeout,則 t1 最多阻塞timeout秒,否則 t1 將一直等下去。

join()只能在start()之後呼叫;

1

t.run()

執行緒通過 run() 呼叫傳入的主函式 target,不要直接呼叫run(),而是呼叫start()函式,start()函式會呼叫run()。

1

t.start()

開始執行緒執行

python執行緒執行的流程

1. 建立乙個執行緒 t= threading.thread(),此時新建立的執行緒並不會立即執行;

2. 如果想要將 t 設定為守護執行緒,在呼叫 t.start() 之前呼叫 t.setdaemon(true);否則忽略本步;

3. 呼叫 t.start(),此時執行緒開始執行,狀態更新為 active。更具體的,start() 會進一步呼叫 run() 函式,run() 函式再去呼叫建立執行緒物件時傳入的主函式 target,從而讓執行緒有了執行的具體內容;

4. 當執行緒中的主函式執行完成或遇到未處理的異常時,執行緒終止執行;daemon執行緒也可能因為所在程序終止而被python終止。

標籤: 

python

Python多執行緒(1) 介紹

python對多執行緒提供了很好的支援,python中多執行緒相關的模組包括 thread,threading,queue。可以方便地支援建立執行緒 互斥鎖 訊號量 同步等特性。1.thread 多執行緒的底層支援模組,除了其中提供的 lock 原語外,一般不建議使用。2.threading 基於 ...

Python標準庫 1 介紹

標準庫包含了幾種不同型別的庫。首先是那些核心語言的資料型別庫,比如數字和列表相關的庫。在核心語言手冊裡只是描述數字和列表的編寫方式,以及它的排列,而沒有定義它的語義。換一句話說,核心語言手冊只是定義語法和優先順序之類,並沒有定義對這些型別的功能上的操作。其次標準庫包含了一些內建函式和異常處理物件,在...

推薦系統 1 介紹

介紹 協同過濾 cf 協同過濾中的高階主題 advanced topics in cf 基於內容的推薦系統 contented based recommendation 基於知識的推薦系統 knowledge based recommendation 序列化推薦系統 sequential recom...