爲什麼有時候線程數超過CPU內核數會更快呢?

單核CPU上運行的多線程程序, 同一時間只能一個線程在跑, 系統幫你切換線程而已, 系統給每個線程分配時間片來執行, 每個時間片大概10ms左右, 看起來像是同時跑, 但實際上是每個線程跑一點點就換到其它線程繼續跑,效率不會有提高,切換線程反倒會增加開銷。

爲什麼有時候線程數超過CPU內核數會更快呢?

原因是這種程序的單個線程運算量不足以佔滿CPU一個內核(比如存在大量IO操作,IO比較慢,是程序瓶頸)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章