Thread Wait For Parent

Estoy implementando un mecanismo de grupo de subprocesos simple para mi servidor ubuntu (para mi programa de chat anónimo multicliente), y necesito hacer que mis subprocesos de trabajo duerman hasta que sea necesario un trabajo (en forma de un puntero y parámetro de función) realizado.

Mi sistema actual se está yendo por la ventana. Estoy (el hilo del trabajador está) preguntando al gerente si hay un trabajo disponible y si no hay sueño durante 5 ms. Si lo hay, agregue el trabajo a la cola de trabajo y ejecute la función. Miserable pérdida de ciclos.

Lo que yome gust hacer es crear un sistema simple similar a un evento. Estoy pensando en tener un vector de mutexes (uno para cada trabajador) y tener el identificador del mutex pasado como parámetro en la creación. Luego, en mi clase de administrador (que retiene y reparte trabajos), cada vez que se crea un hilo, bloquea el mutex. Cuando se necesita realizar un trabajo, desbloquee el siguiente mutex en línea, espere a que se bloquee y desbloquee y vuelva a bloquearlo. Sin embargo, me pregunto si hay un medio mucho mejor para este fin.

tldr; Así que mi pregunta es esta. ¿Cuál es la forma más eficiente, efectiva y segura de hacer que un hilo espere un trabajo de una clase de gestión? ¿Es el sondeo una técnica que incluso debería considerar (más de 1000 clientes a la vez), es el bloqueo de mutex decente? ¿O hay otras técnicas?

Respuestas a la pregunta(5)

Su respuesta a la pregunta