執行緒優先順序

2021-08-13 11:21:01 字數 1803 閱讀 3586

知識點:

    執行緒優先順序

    獲取當前執行緒控制代碼

    執行緒優先順序設定

    執行緒優先順序變動

    執行緒優先順序獲取

一、執行緒優先順序(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...