設定執行緒優先順序
bool winapi setthreadpriority(
__in handle hthread,
__in int npriority
);
引數npriority的值
thread_mode_background_begin
0x00010000
thread_mode_background_end
0x00020000
thread_priority_above_normal
1高於正常
thread_priority_below_normal
-1低於正常
thread_priority_highest2最高
thread_priority_idle
-15空閒
thread_priority_lowest
-2最低
thread_priority_normal 0正常
thread_priority_time_critical
15實時
排程方式
高優先順序優先排程,同優先順序機會均等。
低優先順序執行緒也會執行的,由系統決定。
建立執行緒時函式中如何設定
handle winapi createthread(
lpsecurity_attributes lpthreadattributes,
size_t dwstacksize,
lpthread_start_routine lpstartaddress,
lpvoid lpparameter,
dword dwcreationflags, // create_suspended 執行緒被建立後掛起,直到 resumethread 函式被呼叫才執行。
// 0 執行緒建立後立即執行。
lpdword lpthreadid
);dword winapi resumethread(
handle hthread
);
例程1:預設優先順序執行
#include #include #include dword winapi threadprofunca(lpvoid lpparam);
dword winapi threadprofuncb(lpvoid lpparam);
int main(int argc, char **argv)
dword winapi threadprofunca(lpvoid lpparam)
return 0;
}dword winapi threadprofuncb(lpvoid lpparam)
return 0;
}
執行結果
hello
hello
hello
hello
world
hello
world
world
world
world
請按任意鍵繼續. . .
例程2:建立完執行緒,通過 resumethread 執行指定執行緒,這裡建立完執行緒不執行
#include #include #include dword winapi threadprofunca(lpvoid lpparam);
dword winapi threadprofuncb(lpvoid lpparam);
int main(int argc, char **argv)
dword winapi threadprofunca(lpvoid lpparam)
return 0;
}dword winapi threadprofuncb(lpvoid lpparam)
return 0;
}
執行結果
world
world
world
world
world
請按任意鍵繼續. . .
例程3:設定優先順序
#include #include #include dword winapi threadprofunca(lpvoid lpparam);
dword winapi threadprofuncb(lpvoid lpparam);
int main(int argc, char **argv)
dword winapi threadprofunca(lpvoid lpparam)
return 0;
}dword winapi threadprofuncb(lpvoid lpparam)
return 0;
}
執行結果
hello
hello
hello
world
hello
hello
world
world
world
world
請按任意鍵繼續. . .
執行緒優先順序的設定
執行緒的優先順序 1 10,10為最高端別,1為最低級別,5為預設級別 thread.min priority 最小優先順序 thread.max priority 最高優先順序 thread.norm priority 預設優先順序 設定優先順序 public class jointhread2 ...
Linux執行緒優先順序設定
本程式會讓系統失去i o響應,不建議去執行!include include include include include include void thr fun void arg if policy sched fifo else if policy sched other else if po...
56 設定執行緒優先順序
可以通過使用thread類中的setpriority方法設定執行緒的優先順序。setpriority 方法接收乙個int型別的引數,通過這個引數可以指定執行緒的優先順序,取值範圍是整數1 10,優先順序隨著數字的增大而增強。在thread類中封裝了三個int型別的數字 優先順序最低 public f...