VS C 執行緒篇之三設定優先順序

2021-08-17 12:53:24 字數 2711 閱讀 6003

設定執行緒優先順序

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