Lock Free Queue - один производитель, несколько потребителей

Я ищу метод для реализации структуры данных очереди без блокировки, которая поддерживает одного производителя и нескольких потребителей. Я посмотрел на классический метод Магеда Майкла и Майкла Скотта (1996), но их версия использует связанные списки. Я хотел бы реализацию, которая использует ограниченный круговой буфер. Что-то, что использует атомарные переменные?

Кстати, я не уверен, почему эти классические методы предназначены для связанных списков, которые требуют большого динамического управления памятью. В многопоточной программе все процедуры управления памятью сериализуются. Разве мы не ослабляем преимущества методов без блокировок, используя их в сочетании с динамическими структурами данных?

Я пытаюсь кодировать это в C / C ++, используя библиотеку pthread на 64-битной архитектуре Intel.

Спасибо, Шириш

Ответы на вопрос(4)

Ваш ответ на вопрос