processzor időt elosztása szálak közötti
A rendszer osztja CPU idő minden aktív szálak alapján prioritási szinten, hogy a tartomány 0-31.
Az alsó szinten van fenntartva, és rendelt egy speciális rendszer menet oldal nullázás.
Amikor a rendszer csatlakozik a processzor, hogy az adatfolyam, feldolgozza áramlások azonos prioritású, mint az egyenlő (a karusszel). Miután az összes áramlás a prioritást kapnak kvantum és azzal a feltétellel, hogy azok nem igényelnek CPU, az operációs rendszer bevételt flow alacsonyabb prioritást élvez.
Van rá esély, hogy a processzor folyamatosan feldolgozza az áramot, például prioritás 31. Tehát áramlik az alacsonyabb prioritású nincs esélye, hogy csatlakozzon a processzor. Ezt a helyzetet nevezzük torlódás (éhezés - Hang).
Létrehozása áramlás relatív prioritás tétlen:
FOGANTYÚ hThread = CreateThread (NULL, 0, ThreadFunc, NULL, CREATE_SUSPENDED, dwThreadID); SetThreadPriority (hThread, THREAD_PRIORITY_IDLE); ResumeThread (hThread);
CreateThread mindig létrehoz egy szálat a relatív prioritását normális.
Rendelni relatív prioritását az üresjárati szál, akkor létre kell hozni felfüggesztett szál, átadva a zászló CREATE_SUSPENDED CreateThread, majd okoz SetThreadPriority és állítsa be a kívánt prioritást.
Szüneteltetheti és folytathatja a hullámok:
Felfüggesztheti áramlás is használhatja a hívás funkció
DWORD SuspendThread (fogantyú hThread);
amely növeli az áramlásmérő állásidőt. A siker a függvény az előző értékét tétlen számláló vagy $ FFFFFFFF.
Folytatásához az áramlás legyen egy másik téma, hogy a függvényt
DWORD ResumeThread (fogantyú hThread);
amely csökkenti az állásidőt számláló egy, és ha ez 0, az áramlás kezdődik.
Megállítani az áramlást nem lehet több, mint 127-szor.
Ezután meg kell hívni ResumeThread, és az áramlás szerepelni fog a tervezett számát. Előre megmondani, ha a szál kap CPU idő, ez lehetetlen, de az ütemező már tartja új prioritást
Egy szál lehet mondani a rendszert, hogy ne ossza CPU időt rá egy bizonyos ideig, ami:
ÉRVÉNYTELEN Sleep (DWORD dwMilliseconds);
Ez a funkció felfüggeszti a szál dwMilliseconds milliszekundum.
Okozó Sleep, áramlási önként lemond a mérleg kiosztott idő szelet.
A rendszer leáll áramlási osztja CPU idő időszakra megközelítőleg egyenlő egy előre meghatározott, mert A Windows nem egy valós idejű rendszer.
Akkor hívja a Sleep és add dwMilliseconds érték VÉGTELEN, általánosan megtiltja a tervezett áramlás.
Akkor hívja a Sleep és add dwMilliseconds nulla. Akkor adja fel a hátralévő idő szelet, és kap a rendszer kapcsolódik a processzorhoz másik szál.