1. 程式人生 > >C++ 將程序執行在指定的CPU上

C++ 將程序執行在指定的CPU上

方法:  SetProcessAffinityMask(HANDLE,DWORD); 其中,第一個引數為程序控制代碼。 如果要知道當前執行緒的控制代碼,可以通過函式:GetCurrentThread()得到。否則,在建立多執行緒的時候,也同樣可以得到建立的執行緒的控制代碼。
第二個引數為mask,可取值為0~2^31(32位)和0~2^63(64位),每一位代表每一個CPU是否使用。
比如,你要指定程序到第0個CPU上,則mask=0×01
第1個CPU:mask=0×02
第2個CPU:mask=0×04 (注意不是0×03)

第3個CPU:mask=0×08
以此類推。
如果要指定多個CPU:
比如第0、1個:mask=0×03
第1、2個:mask=0×06
以此類推。
如果CPU個數不足,則會進行取模操作。比如一共4個CPU,則mask=0×0010則和0×01一樣。