CPU 的核心數與執行緒數量是什麼關係? 個人理解

2021-08-26 12:28:29 字數 748 閱讀 5571

1==>  簡單點說,處理器核數(包括超執行緒數)是一種執行資源,資源數量就是核數個數。

2==>  應用程式的執行緒數就是服務請求數。

3==> 而作業系統的作用是如果用有限的資源來服務好應用程式的請求,這就是程序排程的功能。

4==> 一般情況下,服務請求執行緒會「相對公平」 地分配到核上執行,並且在時間片上輪流使用的,即併發執行 (不一定是並行執行)

比如系統硬體有 4 核心,如果:

只有 3 個執行緒,那就分配到 3 個核上執行。

只有 8 個執行緒,那就每兩個核分配兩個執行緒執行。

只有 10 個執行緒,那就有些核跑 3 個執行緒, 有些核跑 2 個執行緒。

相對,這不是絕對的,要看應用程式使用的是什麼排程策略, os 是盡量讓每個執行緒的平均等待時間最小化。

如果系統只有 4 個核,大數值計算的應用,到底是拆成 4 個執行緒,還是 8 個執行緒, 還是12 個執行緒, 這些在並行框架裡面都有分析,

要看你的應用計算特徵才能知道哪種拆分效能高。

ps:有的電腦硬體說自己是 8 核 16 執行緒,這裡的執行緒什麼意思?

答:這個意思,是把物理資源一分為二,因為大多數的時候,無法 100% 利用乙個 cpu, 所以虛擬成兩個,於是就把乙個核虛擬變成兩個核,這在利用率不高的情況下,平攤在 16 個虛擬核上,這樣處理速度會快很多,但是當每乙個核的負載都很大的時候,就跟 8 核心是一樣的,所以 8 核 16 執行緒在效能極致的時候,跟 16 核還有很大的差別(差距),但是我們普通的使用場景是負載並不大的,所以這種架構很適合。

VMWare中的CPU數量與核心數量意義

處理器數量 是指cpu核數 例如 單核 雙核 並不是指cpu顆數。每個處理的核心數量 是指cpu中的執行緒,並不是指核心 core 自己也可以求證,首先你肯定知道自己物理機cpu 資訊 例如i3 雙核四執行緒 在vmware中設定虛擬機器處理器數量,從字面意識理解應該是指cpu顆數,正常設定值最大應...

VMWare中的CPU數量與核心數量意義

處理器數量 是指cpu核數 例如 單核 雙核 並不是指cpu顆數。每個處理的核心數量 是指cpu中的執行緒,並不是指核心 core 自己也可以求證,首先你肯定知道自己物理機cpu 資訊 例如i3 雙核四執行緒 在vmware中設定虛擬機器處理器數量,從字面意識理解應該是指cpu顆數,正常設定值最大應...

CPU的核心數與執行緒數

一 關係 1 執行緒數可以模擬出不同的cpu核心數。cpu的核數是指硬體上有多個核,執行緒數可以模擬多個核的功能。執行緒越多,就越有利於同時執行多個程式,因為執行緒數等於cpu在某一時刻可以同時並行處理的任務數。2 對於乙個cpu,執行緒數總是大於或等於核心數的。乙個核心至少對應乙個執行緒,但通過超...