Lock Free Queue - Productor único, múltiples consumidores

Estoy buscando un método para implementar una estructura de datos de cola sin bloqueo que sea compatible con un solo productor y múltiples consumidores. Mire el método clásico de Maged Michael y Michael Scott (1996), pero su versión usa listas enlazadas. Me gustaría una implementación que haga uso del búfer circular acotado. ¿Algo que usa variables atómicas?

En una nota al margen, no estoy seguro de por qué estos métodos clásicos están diseñados para listas vinculadas que requieren una gran cantidad de administración de memoria dinámica. En un programa multiproceso, todas las rutinas de administración de memoria se serializan. ¿No estamos derrotando los beneficios de los métodos sin bloqueo al usarlos junto con estructuras de datos dinámicas?

Estoy tratando de codificar esto en C / C ++ usando la biblioteca pthread en una arquitectura Intel de 64 bits.

Gracias Shirish

Respuestas a la pregunta(4)

Su respuesta a la pregunta