通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個**。
下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉dummy即可。
提醒特別注意,這裡的多執行緒仍然會受到gil(全域性直譯器鎖)的限制,理論上並沒有真正做到併發,只是在io密集型中的任務中可以利用等待時間切換到其他執行緒。
from
結果非常地amazing,使用普通迴圈方法耗時約6s,而使用多執行緒方法則只要1s。
start2
list
def
執行結果如下:
2020-10-07 19:47:11.878021 : callback
2020-10-07 19:47:11.886995 : callback
2020-10-07 19:47:12.210958 : callback
2020-10-07 19:47:12.337566 : callback
2020-10-07 19:47:12.386963 : callback
2020-10-07 19:47:12.568395 : callback
2020-10-07 19:47:12.961023 : callback
thread pool: 1.4119532108306885
本文簡單地綜述了python中多執行緒最基礎的部分,能力有效,如有謬誤請不吝指出。
python多執行緒詳解 Python多執行緒詳解
前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...
python程式多執行緒 PYTHON多執行緒
在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...
python多執行緒函式 Python多執行緒
python使用多執行緒有兩種方式 函式或者用類來包裝執行緒物件 函式式 呼叫thread模組中的start new thread 函式來產生新執行緒 thread.start new thread function,args kwargs function 執行緒函式 args 執行緒引數,必須是...