Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa porządkowania wątków kontroluje wykonywanie co najmniej jednego wątku klienta. Gwarantuje to, że każdy wątek klienta jest uruchamiany raz w określonym przedziale czasu i w względnej kolejności.
Windows Server 2003 i Windows XP: Usługa porządkowania wątków jest dostępna od systemów Windows Vista i Windows Server 2008.
Usługa porządkowania wątków jest domyślnie wyłączona i musi zostać uruchomiona przez użytkownika. Gdy usługa porządkowania wątków jest uruchomiona, jest aktywowana co 5 sekund, aby sprawdzić, czy istnieje nowe żądanie, nawet jeśli system jest bezczynny. Zapobiega to uśpieniu systemu przez dłużej niż 5 sekund, co powoduje, że system zużywa więcej mocy. Jeśli wydajność energetyczna ma kluczowe znaczenie dla aplikacji, lepiej nie używać usługi porządkowania wątków i zamiast tego zezwalać harmonogramowi systemu na zarządzanie wykonywaniem wątków.
Każdy wątek klienta należy do grupy porządkowania wątków . Nadrzędny wątek tworzy co najmniej jedną grupę porządkowania wątków przez wywołanie funkcji AvRtCreateThreadOrderingGroup. Wątek nadrzędny używa tej funkcji do określenia okresu dla grupy porządkowania wątków i interwału ograniczenia czasowego.
Dodatkowe wątki klienta wywołują funkcję AvRtJoinThreadOrderingGroup, aby dołączyć do istniejącej grupy porządkowania wątków. Te wątki wskazują, czy mają być poprzednikiem, czy następcą wątku nadrzędnego w kolejności wykonywania. Każdy wątek klienta powinien wykonać określoną ilość przetwarzania w każdym okresie. Wszystkie wątki w grupie powinny zakończyć swoje wykonywanie w okresie czasu powiększonym o interwał limitu czasu.
Wątki grupy porządkowania wątków umieszczają swój kod przetwarzania w pętli, która jest kontrolowana przez funkcję AvRtWaitOnThreadOrderingGroup. Po pierwsze, poprzednie wątki są wykonywane pojedynczo w kolejności, w której dołączyły do grupy, podczas gdy wątki nadrzędne i wątki następne są blokowane podczas wywoływania AvRtWaitOnThreadOrderingGroup. Po zakończeniu przetwarzania każdego poprzedniego wątku, kontrola wykonania powraca do góry pętli przetwarzania, a wątek ponownie wywołuje AvRtWaitOnThreadOrderingGroup, aby zablokować się do następnego kroku. Po wywołaniu tej funkcji przez wszystkie wątki poprzedzające, serwis kolejkowania wątków może zaplanować wątek nadrzędny. Na koniec, gdy nadrzędny wątek zakończy swoje przetwarzanie i ponownie wywoła AvRtWaitOnThreadOrderingGroup, usługa porządkowania wątków może zaplanować kolejne wątki pojedynczo, w takiej kolejności, w jakiej dołączyły do grupy. Jeśli wszystkie wątki zakończą wykonywanie przed zakończeniem okresu, wszystkie wątki będą czekać do końca okresu, zanim zostaną wykonane ponownie.
Gdy klient nie musi już działać w ramach grupy porządkowania wątków, wywołuje funkcję AvRtLeaveThreadOrderingGroup, aby usunąć się z grupy. Należy pamiętać, że wątek nadrzędny nie powinien usuwać się z grupy porządkowania wątków. Jeśli wątek nie zakończy wykonywania przed upływem okresu oraz przerwy limitu czasu, zostanie usunięty z grupy.
Wątek nadrzędny wywołuje funkcję AvRtDeleteThreadOrderingGroup w celu usunięcia grupy porządkowania wątków. Grupa porządkowania wątków jest również niszczona, jeśli wątek nadrzędny nie ukończy jego wykonywania przed upływem czasu obejmującego okres i interwał limitu czasu. Gdy grupa porządkowania wątków zostanie zniszczona, wszystkie wywołania AvRtWaitOnThreadOrderingGroup z wątków tej grupy kończą się niepowodzeniem lub przekroczeniem limitu czasu.