Interfejs API puli wątków
Interfejs programowania aplikacji puli wątków (API) używa projektu opartego na obiektach. Każdy z następujących obiektów jest reprezentowany przez strukturę danych trybu użytkownika:
- Obiekt puli to zestaw wątków roboczych, których można użyć do wykonywania pracy. Każdy proces może w razie potrzeby utworzyć wiele izolowanych pul o różnych cechach. Istnieje również domyślna pula dla każdego procesu.
- Grupa czyszczenia jest skojarzona z zestawem obiektów generujących wywołanie zwrotne. Funkcje istnieją, aby czekać i zwolnić wszystkie obiekty, które są elementami członkowskimi każdej grupy czyszczenia. Zwalnia to aplikację z śledzenia wszystkich utworzonych przez nią obiektów.
- Obiekt roboczy jest przypisywany do puli i opcjonalnie do grupy oczyszczania. Można go opublikować, powodując wątek procesu roboczego z puli w celu wykonania wywołania zwrotnego. Obiekt roboczy może mieć wiele zaległych wpisów; każdy generuje wywołanie zwrotne. Operacja po operacji nie może zakończyć się niepowodzeniem z powodu braku zasobów.
- Obiekt czasomierza kontroluje planowanie wywołań zwrotnych. Za każdym razem, gdy czasomierz wygaśnie, jego wywołanie zwrotne jest publikowane w puli procesów roboczych. Ustawienie czasomierza nie może zakończyć się niepowodzeniem z powodu braku zasobów.
- Obiekt oczekiwania powoduje, że wątek kelnera czeka na oczekujące dojścia. Po spełnieniu oczekiwania lub wygaśnięciu limitu czasu wątek kelnera publikuje wywołanie zwrotne obiektów oczekiwania do puli procesów roboczych oczekiwania. Ustawienie oczekiwania nie może zakończyć się niepowodzeniem z powodu braku zasobów.
- Obiekt we/wy kojarzy uchwyt pliku z portem uzupełniania we/wy dla puli wątków. Po zakończeniu operacji we/wy asynchronicznej wątek procesu roboczego pobiera stan operacji i wywołuje wywołanie zwrotne obiektu we/wy.
W poniższej tabeli opisano funkcje oryginalnych i bieżących interfejsów API puli wątków.
Tematy pokrewne