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