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的性能。