【系統運維】單線程和多線程的幾個疑問與解答。

Q1:單核CPU上單線程和多線程的執行效率問題。

A:由於單核CPU上在任意時刻都只能有一個線程在運行。那麼,在不考慮I/O等待的情況下,單線程的執行效率顯然要高,因爲免除了多線程上下文切換的開銷。


Q2:多線程程序比單線程程序能獲得更多的CPU時間片

A:這種說法是不正確的。儘管多線程程序競爭到CPU的概率大於單線程程序,但是存在一個線程優先級的問題以及短作業優先的搶佔算法,故這種說法不正確。


Q3:關於超線程

A:超線程技術是在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4 HT的die的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU、L2 Cache(二級緩存)則保持不變,這些部分是被分享的。

採用超線程即是可在同一時間裏,應用程序可以使用芯片的不同部分。雖然單線程芯片每秒鐘能夠處理成千上萬條指令,但是在任一時刻只能夠對一條指令進行操作。而超線程技術可以使芯片同時進行多線程處理,使芯片性能得到提升。

雖然採用超線程技術能同時執行兩個線程,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超線程的性能並不等於兩顆CPU的性能。


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