CPU密集型和IO密集型


  對於Python如果是CPU密集型應該用多進程模型(大量的計算)

   如果是IO密集型應該用多線程模型(數據的讀取寫入、網絡IO數據傳輸)

 

  由於GIL的存在,CPython不能有效的利用多核處理器,表現為任意時間一個進程只有一個線程在跑;而IO密集型運算,多數是在IO讀寫將線程堵塞掉了,這個時候線程切換是很合理的,反正線程只是單純地等待,在這個等待的時候去做其他的事情,資源利用率就上去了。

  

  python的多線程只能使用一個cpu核心,io密集型應用,本來cpu占用率就很低(主要原因還是GIL鎖)

  python多線程這個限制和協程有點像,應用也很像,都是適合io密集型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM