Klasa CThreadPool
Ta klasa zapewnia puli wątków roboczych, które przetwarzają kolejki elementów roboczych.
template <
class Worker,
class ThreadTraits = DefaultThreadTraits
>
class CThreadPool :
public IThreadPoolConfig
Parametry
Pracownik
Klasa odpowiadające archetyp pracownika dostarczanie kod używany do przetwarzania elementów puli wątków w kolejce pracy.ThreadTraits
Klasa, zapewniając funkcji używanych do tworzenia wątków w puli.
Członkowie
Publiczne konstruktory
Nazwa |
Opis |
---|---|
Konstruktor dla puli wątków. |
|
Destruktora dla puli wątków. |
Metody publiczne
Nazwa |
Opis |
---|---|
Wykonania IUnknown::AddRef. |
|
Wywołanie tej metody, aby uzyskać liczbę wątków w puli. |
|
Wywołanie tej metody get uchwyt portu zakończenia operacji We/Wy używany do elementów pracy w kolejce. |
|
Wywołanie tej metody, aby uzyskać liczbę wątków w puli. |
|
Wywołanie tej metody, aby uzyskać maksymalny czas w milisekundach pula wątków będzie czekać do zamknięcia wątku. |
|
Wywołanie tej metody, aby zainicjować puli wątków. |
|
Wykonania IUnknown::QueryInterface. |
|
Wywołanie tej metody do kolejki element pracy mają być obsługiwane przez wątek w puli. |
|
Wykonania IUnknown::Release. |
|
Wywołanie tej metody, aby ustawić liczbę wątków w puli. |
|
Wywołanie tej metody, aby ustawić maksymalny czas w milisekundach pula wątków będzie czekać do zamknięcia wątku. |
|
Wywołanie tej metody do zamknięcia puli wątków. |
Uwagi
Do tworzenia i zniszczone podczas zainicjowany, rozmiar lub zamknąć puli wątków w puli.Wystąpienie klasy pracownika zostanie utworzona na stosie każdego wątku roboczego w puli.Każde wystąpienie będzie live dla okresu istnienia wątku.
Natychmiast po utworzeniu wątków pracownika::Initialize będzie wywoływana w obiektu skojarzonego z tym wątku.Bezpośrednio przed zniszczenie wątku pracownika::Terminate zostanie wywołana.Obie metody musi zaakceptować void * argumentu.Wartość tego argumentu jest przekazywany do puli wątków przez pvWorkerParam parametr CThreadPool::Initialize.
Gdy elementy pracy w wątki kolejki i roboczy dostępny do pracy, wątek roboczy będą ściągane element kolejki i wywołanie Execute metoda pracownika obiektu dla tego wątku.Trzy elementy są następnie przekazywane do metody: element z kolejki, takie same pvWorkerParam przekazany do pracownika::Initialize i pracownika::Terminatei wskaźnik do OVERLAPPED struktura używana dla kolejki portu zakończenia operacji We/Wy.
Pracownika klasy deklaruje typ elementów, które będzie kolejce puli wątków, zapewniając typedef, pracownika::RequestType.Tego typu musi być zdolne do jest oddanych do i z ULONG_PTR.
Przykład pracownika klasy jest Klasa CNonStatelessWorker.
Hierarchii dziedziczenia
IUnknown
CThreadPool
Wymagania
Nagłówek: atlutil.h