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...