內容切換
排程器會維護每個優先順序層級的可執行執行緒佇列。 這些稱為 就緒執行緒。 當處理器變成可用時,系統會執行 內容切換。 內容切換中的步驟如下:
- 儲存剛完成執行之執行緒的內容。
- 將剛完成執行的執行緒放在佇列結尾處,以取得其優先順序。
- 尋找包含就緒執行緒的最高優先順序佇列。
- 移除佇列前端的執行緒、載入其內容,然後加以執行。
下列執行緒類別不是就緒的執行緒。
- 使用 CREATE_SUSPENDED 旗標建立的執行緒
- 使用 SuspendThread 或 SwitchToThread 函式在執行期間停止的執行緒
- 等候同步處理物件或輸入的執行緒。
在暫停或封鎖的執行緒準備好執行之前,排程器不會為其配置任何處理器時間,而不論其優先順序為何。
內容切換最常見的原因如下:
- 時間配量已經過時。
- 優先順序較高的執行緒已準備好執行。
- 執行中的執行緒必須等候。
當執行中的執行緒需要等候時,它會放棄其時間配量的其餘部分。