乙個計算為主的程式(專業一點稱為cpu密集型程式)。多執行緒跑的時候,可以充分利用起所有的cpu核心,比如說4個核心的cpu,開4個執行緒的時候,可以同時跑4個執行緒的運算任務,此時是最大效率。
但是如果執行緒遠遠超出cpu核心數量 反而會使得任務效率下降,因為頻繁的切換執行緒也是要消耗時間的。
因此對於cpu密集型的任務來說,執行緒數等於cpu數是最好的了。
如果是乙個磁碟或網路為主的程式(io密集型)。乙個執行緒處在io等待的時候,另乙個執行緒還可以在cpu裡面跑,有時候cpu閒著沒事幹,所有的執行緒都在等著io,這時候他們就是同時的了,而單執行緒的話此時還是在乙個乙個等待的。我們都知道io的速度比起cpu來是慢到令人髮指的。所以開多執行緒,比方說多執行緒網路傳輸,多執行緒往不同的目錄寫檔案,等等。
此時 執行緒數等於io任務數是最佳的。
計算密集型 IO密集型 資料密集型
2 計算密集型任務雖然也可以用多工完成,但是任務越多,花在任務切換的時間就越多,cpu執行任務的效率就越低,所以,要最高效地利用cpu,計算密集型任務同時進行的數量應當等於cpu的核心數。3 計算密集型任務由於主要消耗cpu資源,因此,執行效率至關重要。python這樣的指令碼語言執行效率很低,完全...
CPU 密集型 計算密集型,IO密集型
1 cpu 密集型 計算密集型 計算密集型,顧名思義就是應用需要非常多的cpu計算資源,在多核cpu時代,我們要讓每乙個cpu核心都參與計算,將cpu的效能充分利用起來,這樣才算是沒有浪費伺服器配置,如果在非常好的伺服器配置上還執行著單執行緒程式那將是多麼重大的浪費。對於計算密集型的應用,完全是靠c...
計算密集型和IO密集型
什麼是計算密集型 計算密集型就是計算 邏輯判斷量非常大而且集中的型別,因為主要占用cpu資源所以又叫cpu密集型,而且當計算任務數等於cpu核心數的時候,是cpu執行效率最高的時候。特點 消耗cpu 什麼是io密集型 io密集型就是磁碟的讀取資料和輸出資料非常大的時候就是屬於io密集型 由於io操作...