欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

i7的超線程是什么意思

榮姿康2年前15瀏覽0評論

i7的超線程是什么意思?

CPU的硬件資源是動態分配的,或者說,看運氣。

超線程這東西并不像想象的那么美好,單核超線程,和雙核單線程的性能差距是很大的。

在實時性要求較高的操作系統里,首要的事情就是關閉超線程,因為超線程會讓線程的運行時間變得不確定,據說高性能計算的也會關。

表面上看,是一個核跑著兩個線程,實際上兩個線程哪個線跑完是不確定的,同樣的代碼的兩個線程,跑在一個核上,可能一個已經跑完了,另一個1/3都還沒過。

操作系統調度的時候,會根據核的繁忙程度來分配線程。至于會不會讓某一個核忙死另一個核在摸魚,這種事情很難說,看操作系統的調度器如何設計了。理論上說稍微有點腦子的操作系統都會解決這個問題,比如線程按照奇偶數的方式分配核心,先分配1、3、5、7,跑滿了以后才是2、4、6、8,這樣就可以避免摸魚的問題了。

反正我手頭的WIN7能明顯看出來這種現象(CPU為4核 i7-3770,開超線程):

------------------------

有人貼了AMD的架構,我放一張haswell的圖:

可以看到一個核上有不止一個ALU,像x86的LEA指令實際上是有計算的功能的,有單獨的ALU負責執行LEA這種指令,所以在任何時刻,一個核里的執行單元都是不可能完全占滿的,占不滿的情況下,就有能力讓另外一個線程執行了,但如果兩個線程都需要同樣的執行單元(比如都需要進行浮點計算),那么有一個線程就需要等待,此時線程的實際執行時間就是不可控的。

java線程執行時間,i7的超線程是什么意思