Classe CThreadPool
Essa classe fornece um conjunto de trabalho threads que processo uma fila de itens de trabalho.
template <
class Worker,
class ThreadTraits = DefaultThreadTraits
>
class CThreadPool :
public IThreadPoolConfig
Parâmetros
Operador
A classe que estão de acordo com o operador arquétipo fornecendo código usado para processar itens inserida na fila de trabalho a thread pool.ThreadTraits
A classe fornecendo a função usada para criar os threads no pool.
Comentários
Threads no pool são criados e destruídos quando o pool é inicializado, redimensionado ou desligado.Uma instância da classe Operador será criada na pilha de cada thread de trabalho no pool.Cada instância será em tempo real durante a tempo de vida do thread.
Imediatamente após a criação de um thread, Operador::Initialize será chamado no objeto associado que thread.Imediatamente antes da destruição de um thread, Operador::Terminate será chamado.Ambos os métodos devem aceitar um void * argumento.O valor desse argumento é passado para o thread pool por meio de pvWorkerParam parâmetro do CthreadPool::inicializar.
Quando há itens de trabalho nos segmentos de fila e operador disponível para o trabalho, um thread de trabalho será puxe um item fora da fila e chamar o Executar método do Operador objeto para esse segmento.Três itens são, então, passados para o método: o item da fila, o mesmo pvWorkerParam passado para Operador::Initialize and Operador::Terminatee um ponteiro para o SOBREPOSTO estrutura usada para a fila de porta de conclusão E/S.
The Operador classe declara o tipo de itens que serão enfileirados no pool de segmentos, fornecendo um typedef, Operador::RequestType. Este tipo deve ser capaz de sendo convertido para / de um ULONG_PTR.
Um exemplo de um Operador classe is Classe CNonStatelessWorker.
Requisitos
Cabeçalho: atlutil.h