知識點:
執行緒優先順序
獲取當前執行緒控制代碼
執行緒優先順序設定
執行緒優先順序變動
執行緒優先順序獲取
一、執行緒優先順序(thread priority )
簡單的說就是(執行緒)的優先順序越高,那麼就可以分佔相對多的cpu時間片。 每個程序都有相應的優先順序,優先順序決定它何時執行和占用 cpu 時間。最終的優先順序共分32級,是從 0 到 31 的數值,稱為基本優先級別。
程序優先順序 priority class 標誌 優先順序值
idle (低) idle_priority_class 4
below 低於標準 below_normal_priority_class 此值在2000以下系統不支援
normal (標準) normal_priority_class 9(前台) 或 7(後台)
above 高於標準 above_normal_priority_class 此值在2000以下系統不支援
high (高) high_priority_class 13
realtime (實時) realtime_priority_class 24
乙個執行緒建立的時候,會繼承程序的優先順序等級。另外執行緒優先順序可以用setthreadpriority來進行微調:
微調範圍
執行緒優先順序等級 標誌 優先順序值
idle (最低) thread_priority_idle 如果程序優先順序為realtime則調整為16,其它情況為1
lowest 低 thread_priority_lowest -2(在原有基礎上-2)
below 低於標準 thread_priority_below_normal -1(在原有基礎上-1)
normal(標準) thread_priority_normal 不變(取程序優先順序值)
above 高於標準 thread_priority_above_normal +1(在原有基礎上+1)
highest (高) thread_priority_highest +2(在原有基礎上+2)
critical(最高) thread_priority_time_critical 如果程序優先順序為realtime則調整為31,其它情況為15
二、獲取當前執行緒控制代碼
handle getcurrentthread(void)
//返回當前進控制代碼
dword getcurrentthreadid(void)
//返回當前程序id值
1、其它執行緒函式
bool setthreadpriority 設定乙個執行緒的優先級別
int getthreadpriority 返回乙個執行緒的 優先級別
setthreadpriorityboost 設定執行緒是否禁用動態調整優先順序功能。
getthreadpriorityboost 獲取執行緒是否禁用了優先順序微調功能。
三、執行緒優先順序的設定
bool setthreadpriority (
handle hthread,// 執行緒控制代碼 handle to the thread
int npriority // 要設定執行緒優先級別thread priority level
);void cdialog_process::onbnclickedradio7()
}
執行緒優先順序
執行緒優先順序由執行緒所屬程序的優先順序類 執行緒自身的相對優先級別共同確定,二者組合值作為執行緒的基優先順序。base priority level win32系統中,執行緒基優先順序的範圍從最低優先順序0到最高優先順序31。系統優先順序程式優先順序類別 執行緒優先順序等級 1idle prior...
執行緒優先順序
優先順序是執行緒排程的重要依據。優先順序高的執行緒,永遠先獲得cpu的青睞。當然啦,作業系統會視情況調整各個執行緒的優先順序。例如前台執行緒的優先順序應該調高一些,後台執行緒的優先順序應該調低一些。執行緒的優先順序範圍從0 最低 到31 最高 當你產生執行緒時,並不是直接以數值指定其優先順序,而是採...
執行緒優先順序
優先順序 執行緒的優先順序將該執行緒的重要性傳給排程器,儘管cpu處理執行緒的順序不確定,但好似cpu排程器會更傾向於讓優先權最高的執行緒先執行,優先順序低的執行緒僅僅是執行頻率較低,不會導致死鎖。public class liftoff implements runnable public voi...