共用方式為


優先權提升

每個執行緒都有 動態優先順序。 這是排程器用來判斷要執行的執行緒的優先順序。 一開始,執行緒的動態優先順序與其基底優先順序相同。 系統可以提升和降低動態優先順序,以確保其回應性,而且處理器時間不會耗盡任何執行緒。 系統不會提升優先順序層級介於 16 到 31 之間的執行緒優先順序。 只有基底優先順序介於 0 到 15 之間的執行緒會收到動態優先權提升。

系統會提升執行緒的動態優先順序,以增強其回應性,如下所示。

  • 當使用NORMAL_PRIORITY_CLASS的進程帶入前景時,排程器會提升與前景視窗相關聯之進程的優先順序類別,使其大於或等於任何背景進程的優先順序類別。 當進程不再在前景時,優先順序類別會返回其原始設定。

  • 當視窗收到輸入,例如計時器訊息、滑鼠訊息或鍵盤輸入時,排程器會提升擁有視窗之執行緒的優先順序。

  • 滿足封鎖執行緒的等候條件時,排程器會提升執行緒的優先順序。 例如,當與磁片或鍵盤 I/O 相關聯的等候作業完成時,執行緒會收到優先權提升。

    您可以藉由呼叫 SetProcessPriorityBoostSetThreadPriorityBoost 函式來停用優先權提升功能。 若要判斷此功能是否已停用,請呼叫 GetProcessPriorityBoostGetThreadPriorityBoost 函式。

引發執行緒的動態優先順序之後,排程器會在每次執行緒完成時間配量時減少該優先順序,直到執行緒回復為其基底優先順序為止。 執行緒的動態優先順序永遠不會小於其基底優先順序。