Thread Wait For Parent

Estou implementando um mecanismo simples de pool de encadeamentos para o meu servidor ubuntu (para o meu programa de bate-papo anônimo para vários clientes) e preciso fazer com que meus encadeamentos de trabalho durma até que um trabalho (na forma de um ponteiro e parâmetro de função) precise ser realizado.

Meu sistema atual está saindo pela janela. Estou perguntando ao gerente se um trabalho está disponível e se não há sono por 5 ms. Se houver, adicione o trabalho à fila de trabalho e execute a função. Desperdício miserável de ciclos.

Qual identificaçãogosta que fazer é criar um sistema simples, semelhante a um evento. Estou pensando em ter um vetor de mutexes (um para cada trabalhador) e ter o identificador para o mutex passado como um parâmetro na criação. Em seguida, na minha classe de gerente (que mantém e distribui trabalhos), sempre que um thread é criado, bloqueie o mutex. Quando um trabalho precisar ser realizado, desbloqueie o próximo mutex da fila, espere que ele seja bloqueado e desbloqueado e volte a bloqueá-lo. No entanto, estou me perguntando se há um meio muito melhor para esse fi

tldr; Então, minha pergunta é essa. Qual é a maneira mais eficiente, eficaz e segura de fazer com que um thread aguarde um trabalho de uma classe de gerenciamento? A pesquisa é uma técnica que eu deveria considerar (mais de 1000 clientes por vez), o bloqueio de mutex é decente? Ou existem outras técnicas?

questionAnswers(5)

yourAnswerToTheQuestion