C 控制CPU核的使用

2021-09-29 11:00:52 字數 831 閱讀 9116

setprocessaffinitymask

引數一:程序控制代碼 -1為自身控制代碼

引數二:指定cpu

引數二的設定是二進位制轉十進位制。引數二需填寫十進位制數字

例如我想設定

1cpu二進位制為1 轉換為十進位制為 1

2cpu二進位制為10 轉換為十進位制為 2

3cpu二進位制為100 轉換為十進位制為 4

4cpu二進位制為1000 轉換為十進位制為 8

1,2cpu二進位制為11 轉換為十進位制為 3

3,4cpu二進位制為1100 轉換為十進位制為 12

123cpu二進位制為1110 轉換為十進位制為 14

1234cpu二進位制為1111 轉換為十進位制為 15

exp:

setprocessaffinitymask(getcurrentprocess(),7)使用前三個核

setprocessaffinitymask(getcurrentprocess(),16)使用第五個核(如無第五個核則取小於16的最近的核組數,此時15即1234,這四個核)

獲取系統總的核數並使用前n-1個核

system_info info;

getsysteminfo(&info);

int corenum = info.dwnumberofprocessors;//計算核數法1

// int corenum2 = std::thread::hardware_concurrency();//計算核數法2

setprocessaffinitymask(getcurrentprocess(), pow(2, corenum-1)-1);

cpu多個核的好處

可以支援多線任務,也就是可以同時跑多個程式,在玩遊戲上體現為,遊戲可以多開。多核處理器是指在一枚處理器中整合兩個或多個完整的計算引擎 核心 英特爾工程師們開發了多核晶元,使之滿足 橫向擴充套件 而非 縱向擴充 方法,從而提高效能。該架構實現了 分治法 戰略。通過劃分任務,執行緒應用能夠充分利用多個執...

C語言控制cpu使用率

今天看到一本講演算法的好書,叫程式設計之美 看了一節,裡面講的是控制cpu 的占有率,cpu的占有率是由程序的忙和空閒來決定的,即 rate busy time busy time idle time 怎麼來控制她呢?busy可以用迴圈 這個迴圈用空迴圈,以便好控制 idle可以用sleep 比如先...

C獲取系統中CPU核數

1 在linux下獲取cpu核數 linux下可以通過linux系統提供的sysconf 來獲取當前cpu個數,sysconf在標頭檔案unistd.h中宣告。sysconf函式中輸入引數 sc nprocessors conf和 sc nprocessors onln均可以獲取系統cpu個數。sc...