免責聲明:下面是在Linux中調度(我不知道有關Windows或其他操作系統)。線程和進程在這裏可以互換使用,但它們之間存在差異。
優先&差異
1.Static優先:這些是默認的優先級(值0爲常規方法又名非實時處理,即當不使用實時調度)而創建一組新線程。您可以通過改變他們:
`pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);`
其中,sched_param包含的優先級:
struct sched_param
{
int sched_priority; /* Scheduling priority */
};
2動態優先級:當線程開始捱餓,因爲更高優先級的線程被調度的時候,有成爲需要使用various mechanism s來提高此線程的優先級。這種升高/降低(是的,這種情況也是如此)優先級被稱爲動態優先級,因爲它不斷變化。在Linux中,即使胖子也可以玩。
3.Real時間優先:該進入僅當線程(進程)實時策略(SCHED_FIFO,SCHED_RR)中的一個預定的下圖象和具有範圍1(低)一個sched_priority值99(高)。與非實時過程的靜態/動態優先級相比,這是最高的。
的更多信息:現在http://man7.org/linux/man-pages/man3/pthread_getschedparam.3.html
,您的問題:
糾正我,如果我錯了,也請告訴我,爲什麼我們使用三種類型的優先級在Linux中,什麼是 這些優先級之間的差異?
因此,對於非實時調度策略,每一道工序都有一些靜態優先級更高的優先級給予線程腳踏啓動,後來爲了避免任何不公正,優先級被提升/降低,這成爲動態優先。
是過程是有區別的實時或傳統的優先事項的基礎就是,如果優先級爲100 139 之間則工藝是常規流程,否則實時 過程嗎?
不是真的,它取決於調度機制。
Linux中的優先級如何改變,我的意思是,我們知道在執行 時,進程的優先級不會保持不變。
這就是當動態進入圖片時。閱讀給定鏈接中的「nice value」。