Pergunta

Criei um modelo para executar tarefas de trabalho em um aplicativo de servidor usando um pool de threads associado a uma porta de conclusão de E/S, conforme mostrado nas postagens abaixo:

http://weblogs.asp.net/kennykerr/archive/2008/01/03/parallel-programming-with-c-part-4-i-o-completion-ports.aspx

http://blogs.msdn.com/larryosterman/archive/2004/03/29/101329.aspx

Existe alguma aula no boost que possa ajudar nesse modelo de programação?

Foi útil?

Solução

Na verdade não, pelo menos não da última vez que olhei.Quero dizer, boost::thread_group pode tornar as coisas um pouco mais organizadas em alguns lugares, mas não tanto que faria muita diferença, eu não acho.

O suporte a threads do Boost parece um pouco útil ao escrever algo que é multiplataforma, mas dado que o que você está escrevendo será específico do Win32 de qualquer maneira (devido ao uso de IOCPs), não parece haver muitos benefícios com isso .

Outras dicas

Você pode querer verificar o projeto de pool de threads, que parece uma boa implementação de threadpool além do boost.Eu não tentei, mas parece bastante bom.

Não vi nada em boost que ajude na estrutura que você tende a ter ao usar portas de conclusão de IO, mas não olhei isso recentemente ...No entanto, um pouco fora do assunto, você pode dar uma olhada no pool de threads baseado em IOCP que faz parte da minha estrutura de servidor IOCP gratuita.Isso pode lhe dar algumas idéias, pelo menos.Você pode encontrar o código aqui.O pool de threads suporta expansão e contração com base na demanda e está em uso em sistemas de produção há mais de 6 anos.

ÁS tem alguns reatores que você pode usar para modelar coisas em torno de seus IOCPs.Alguns deles poderiam ter sido adicionados para impulsionar, mas o impulso torna sua construção muito fácil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top