【系统运维】单线程和多线程的几个疑问与解答。

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


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