Compartilhar via


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

Consulte também

Referência

Interface IThreadPoolConfig

DefaultThreadTraits

Outros recursos

CThreadPool membros

Classes ATL