使用執行緒的兩種方式: 函式或用類包裝執行緒物件
函式 式:呼叫thread模組中是start_new_thread()函式產生新執行緒
thread.start_new_thread ( function, args[, kwargs] )
function - 執行緒函式。
args - 傳遞給執行緒函式的引數,他必須是個tuple型別。
kwargs - 可選引數
python通過兩個標準庫thread和threading提供對執行緒的支援。thread提供了低階別的、原始的執行緒以及乙個簡單的鎖。
threading 模組提供的其他方法:
除了使用方法外,執行緒模組同樣提供了thread類來處理執行緒,thread類提供了以下方法:
python的queue模組中提供了同步的、執行緒安全的佇列類,包括fifo(先入先出)佇列queue,lifo(後入先出)佇列lifoqueue,和優先順序佇列priorityqueue。這些佇列都實現了鎖原語,能夠在多執行緒中直接使用。可以使用佇列來實現執行緒間的同步。
queue模組中的常用方法:
multiprocessing包是python中的多程序管理包。它與 threading.thread類似,可以利用multiprocessing.process物件來建立乙個程序。該程序可以允許放在python程式內部編寫的函式中。該process物件與thread物件的用法相同,擁有is_alive()、join([timeout])、run()、start()、terminate()等方法。屬性有:authkey、daemon(要通過start()設定)、exitcode(程序在執行時為none、如果為–n,表示被訊號n結束)、name、pid。此外multiprocessing包中也有lock/event/semaphore/condition類,用來同步程序,其用法也與threading包中的同名類一樣。multiprocessing的很大一部份與threading使用同一套api,只不過換到了多程序的情境。
這個模組表示像執行緒一樣管理程序,這個是multiprocessing的核心,它與threading很相似,對多核cpu的利用率會比threading好的多
python學習 程序vs執行緒
我們介紹了多程序和多執行緒,這是實現多工最常用的兩種方式。現在,我們來討論一下這兩種方式的優缺點。首先,要實現多工,通常我們會設計master worker模式,master負責分配任務,worker負責執行任務,因此,多工環境下,通常是乙個master,多個worker。如果用多程序實現maste...
Python學習 程序 vs 執行緒
我們介紹了多程序和多執行緒,這是實現多工最常用的兩種方式。現在,我們來討論一下這兩種方式的優缺點。首先,要實現多工,通常我們會設計master worker模式,master負責分配任務,worker負責執行任務,因此,多工環境下,通常是乙個master,多個worker。如果用多程序實現maste...
程序 vs 執行緒
程序 vs.執行緒 我們介紹了多程序和多執行緒,這是實現多工最常用的兩種方式。現在,我們來討論一下這兩種方式的優缺點。首先,要實現多工,通常我們會設計master worker模式,master負責分配任務,worker負責執行任務,因此,多工環境下,通常是乙個master,多個worker。如果用...