Realizacja wielowątkowości polega na przydzielaniu wątkom kwantów czasu, czyli czasu procesora. W NT Server kwant czasu ma stały czas i wynosi 120 ms. W NT WorkStation długość ta jest zmienna i wynosi 20, 40 lub 60 ms.
Za decyzję o tym, który wątek w danym momencie dostanie kwant czasu odpowiada Scheduler. Jest on wywoływany gdy:
W zależności od zaistniałej sytuacji Scheduler uruchamia funkcję FindReadyThread
lub ReadyThread. FindReadyThread uruchamia się gdy procesor się zwalnia i przydziela
go pierwszemu wątkowi z najwyższej niepustej kolejki w "Liście Dyspozytora".
Jest to lista 31 kolejek (numer = priorytet) wszystkich gotowych do wykonania wątków.
Do listy tej wątki są wkładane przez funkcję ReadyThread, która jest uruchamiana
gdy pojawia się nowy, gotowy do wykonania wątek. Wtedy ReadyThread porównuje priorytet
tego wątku z priorytetem wątku siedzącego w procesorze i jeśli jest on równy bądź
wyższy to wątek jest wyciągany z procesora i unieszczany NA POCZĄTKU odpowiedniej kolejki
w Liście Dyspozytora. W przeciwnym przypadku to nowy wątek jest umieszczany NA KOŃCU
odpowiedniej kolejki Listy Dyspozytora.
