親緣性的意思是 程序只在某個cpu上執行 ,比如
bool winapi setprocessaffinitymask(
_in_ handle hprocess,
_in_ dword_ptr dwprocessaffinitymask
);dwprocessaffinitymask 如果是 0 , 代表當前程序只在cpu0 上工作;
如果是 0x03 , 轉為2進製是 00000011 . 代表只在 cpu0 或 cpu1上工作;
優先順序:
//注意, 如果執行緒的優先順序會隨著程序的優先順序浮動
//執行緒:setthreadpriority, getthreadpriority
setpriorityclass(getcurrentprocess(),high_priority_class );
dword pri = getpriorityclass(getcurrentprocess());
親緣性:
#define cpu_mask(mask) (1<<(mask))
system_info sys;
getsysteminfo(&sys);
dword cpucount = sys.dwnumberofprocessors; //cpu數量 4;
dword_ptr pmask, smask; //程序mask, 系統mask;
/*cpu_mask(3) 代表 1<<3 -> 2進製 : 1000 . 意思是只能使用 cpu3 (cpu0 起算).
這個值不要超過cpucount;
setprocessaffinitymask 設定之後可以在任務管理器中檢視相關性.
一旦設定, 所有執行緒將只在這些cpu中執行.子程序也將繼承.
setthreadaffinitymask 用法類似,但 mask 必須是程序使用的cpu 中的一項或幾項;
getprocessaffinitymask 將返回2個mask , 乙個是當前程序 乙個是系統
*/setprocessaffinitymask(getcurrentprocess(),cpu_mask(3));
getprocessaffinitymask(getcurrentprocess(),&pmask,&smask);
cout << hex <
程序 執行緒優先順序
process priority class thread priority level base priority idle priority class thread priority idle thread priority lowest thread priority below norma...
多執行緒多程序優先順序理解 優先順序反轉
1.優先順序反轉 priority inversion 由於多程序共享資源,具有最高優先權的程序被低優先順序程序阻塞,反而使具有中優先順序的程序先於高優先順序的程序執行,導致系統的崩潰。這就是所謂的優先順序反轉 priority inversion 2.產生原因 其實,優先順序反轉是在高優級 假設為...
程序優先順序
程序的優先順序可以通過setpriority nice修改優先順序。程序分為普通程序和實時程序。實時程序的優先順序比普通程序的優先順序高。nice的值 20 19值越小優先順序越高。預設為0 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...