Python IO密集型為什麼使用多執行緒

2022-01-26 05:25:01 字數 365 閱讀 9544

python多執行緒,可以粗淺理解只用了cpu的乙個核心。

為什麼io密集型用多執行緒?假設我們有多個執行緒都在發網路請求(request, 等response),乙個請求的從發出到接收的過程中cpu大多時間都是在等。

所以,當前執行緒發出請求後,由於不占用cpu資源,可以阻塞等待,然後cpu執行權可以被另外乙個執行緒所享有去發網路請求。

io密集型,單個cpu利用率很低,可能只有10%,所以多執行緒可以提公升cpu利用率,可能10個執行緒才能打滿乙個核心, 從而多執行緒也有並行的效果。

python社群也在非常努力的不斷改進gil,甚至是嘗試去除gil。並在各個小版本中有了不少的進步。有興趣的讀者可以擴充套件閱讀這個slide 另乙個改進reworking the gil

什麼是CPU密集型 IO密集型?

cpu密集型 cpu bound cpu密集型也叫計算密集型,指的是系統的硬碟 記憶體效能相對cpu要好很多,此時,系統運作大部分的狀況是cpu loading 100 cpu要讀 寫i o 硬碟 記憶體 i o在很短的時間就可以完成,而cpu還有許多運算要處理,cpu loading很高。在多重程...

什麼是CPU密集型 IO密集型?

原文 cpu密集型 cpu bound cpu密集型也叫計算密集型,指的是系統的硬碟 記憶體效能相對cpu要好很多,此時,系統運作大部分的狀況是cpu loading 100 cpu要讀 寫i o 硬碟 記憶體 i o在很短的時間就可以完成,而cpu還有許多運算要處理,cpu loading很高。在...

什麼是CPU密集型 IO密集型?

cpu密集型 cpu bound cpu密集型也叫計算密集型,指的是系統的硬碟 記憶體效能相對cpu要好很多,此時,系統運作大部分的狀況是cpu loading 100 cpu要讀 寫i o 硬碟 記憶體 i o在很短的時間就可以完成,而cpu還有許多運算要處理,cpu loading很高。在多重程...