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