python 多執行緒和協程速率測試對比

2021-09-25 08:21:05 字數 568 閱讀 8346

多執行緒和協程都屬於io密集型,我通過以下用例測試多執行緒和協程的實際速率對比。

例項:通過socket客戶端以多執行緒併發模式請求不同伺服器端(這裡伺服器端分2種寫法:第一種伺服器通過協程實現,第二種伺服器通過多執行緒實現)的訪問速率

第一種伺服器端寫法:通過gevent實現

第二種伺服器端寫法:通過多執行緒實現

客戶端:

結果:客戶端每次執行,自動生成100個執行緒併發執行,每個執行緒自迴圈10次訪問,對協程模式伺服器的執行一次時長為: 0.17600011825561523秒,  對多執行緒伺服器執行一次時長為:1.312999963760376 秒,通過結果對比協程模式實現的socket伺服器處理速率遠遠高於多執行緒伺服器

python 多執行緒和協程配合使用

有一批key已經寫入到3個txt檔案中,每乙個txt檔案有30萬行記錄。現在需要讀取這些txt檔案,判斷key是否在資料倉儲中。redis或者mysql 為空的記錄,需要寫入到日誌檔案中!1.使用多執行緒技術,每乙個執行緒讀取乙個txt檔案 2.使用協程技術,批量讀取txt檔案記錄。比如一次性讀取 ...

Python執行緒和協程CPU資源利用率測試

前言介紹 協程,又稱為微執行緒,它是實現多工的另一種方式,只不過是比執行緒更小的執行單元。因為它自帶cpu的上下文,這樣只要在合適的時機,我們可以把乙個協程切換到另乙個協程。通俗的理解 在乙個執行緒中的某個函式中,我們可以在任何地方儲存當前函式的一些臨時變數等資訊,然後切換到另外乙個函式中執行,注意...

Python的執行緒 程序和協程

程序 乙個程序就是乙個正在執行的程式,它是計cpu分配資源的最小單位。每個程序都有自己獨立的記憶體空間。能同時執行的程序數最多不超過核心數,也就是每個核心 同一時刻只能執行乙個程序。那麼多程序就是能 同時 執行多個程序 比如同時聽 和寫 這裡的 同時 可以指cpu通過極快地在程序間來回切換來實現,所...