l 程序優先順序
l 獲取當前程序控制代碼
l 優先順序設定
l 優先順序變動
l 優先順序獲取
一、程序優先順序(優先順序等級)
簡單的說就是程序(執行緒)的優先順序越高,那麼就可以分佔相對多的cpu時間片。每個程序都有相應的優先順序,優先順序決定它何時執行和占用 cpu 時間。最終的優先順序共分32級,是從 0 到 31 的數值,稱為基本優先級別。
(priority class)優先順序等級,這裡我叫它程序優先順序。因為一般來說它是在呼叫createprocess時指定的,createprocess中dwcreationflags就可以指定程序的優先順序。而執行緒建立時會繼承程序的優先等級。
因為執行緒才是cpu時間分配的最小單位,所以部分書上也叫執行緒優先等級。
程序優先順序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
#define normal_priority_class 0x00000020
#define idle_priority_class 0x00000040
#define high_priority_class 0x00000080
#define realtime_priority_class 0x00000100
//2000及xp以上版本支援以下 優先順序等級
#define below_normal_priority_class 0x00004000
#define above_normal_priority_class 0x00008000
二、獲取當前程序控制代碼
getcurrentprocess
三、程序優先順序的設定
createprocess建立程序時也可以設定程序優先順序
setpriorityclass設定程序優先順序
getpriorityclass 獲取程序優先順序
setprocesspriorityboost設定啟用或停用程序優先順序提高功能
getprocesspriorityboost 獲取是否啟用程序優先順序提高功能
void cdialog_process::onbnclickedradio1()
void cdialog_process::onbnclickedradio2()
void cdialog_process::onbnclickedradio3()
void cdialog_process::onbnclickedradio4()
void cdialog_process::onbnclickedradio5()
void cdialog_process::onbnclickedradio6()
程序優先順序
程序的優先順序可以通過setpriority nice修改優先順序。程序分為普通程序和實時程序。實時程序的優先順序比普通程序的優先順序高。nice的值 20 19值越小優先順序越高。預設為0 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...
程序優先順序
用top或者ps命令會輸出pri pr ni ni nice這三種指標值,這些到底是什麼東西?先給出大概的解釋如下 pri 程序優先權,代表這個程序可被執行的優先順序,其值越小,優先順序就越高,越早被執行 ni 程序nice值,代表這個程序的優先值 nice 改變過優先順序的程序的占用cpu的百分比...
程序優先順序
1動態優先順序 因為高優先順序的程序總比低優先順序的程序先被排程,為防止有多個高優先順序且一直占用cpu資源,導致其它程序不能占用cpu,所以引用動態優先順序概念.2互動式的程序 如果某個程序被認為是互動式的,那麼將被賦予較高的優先權,例如 鍵盤輸入.互動式的程序從來不被搶占,並且占用cpu很少,它...