Я хочу реализовать модель Unix для одного производителя, для нескольких потребителей с общей памятью
Производитель: поместить фрейм данных (~ char [1024]) в сегмент памяти
Потребители: запоминают данные в своей собственной памяти и выполняют некоторую обработку
Некоторая соответствующая информация:
- Потребитель может пропустить какой-то фрейм данных
- Потребители независимы, например.Это нормально, если один потребитель получает данные 1,2,4, а другой получает 2,3,5
- Одновременно будут работать около 10 потребителей
- Производитель может генерировать данные быстрее, чемпотребители могут обрабатывать
- Медленный / зомби-потребитель не должен замедлять работу всей системы
- Потребитель пропустит memcpy, если увидит те же данные
Я настроилразделяемая память, и используйте блокировку чтения-записи pthread, но она кажется медленнее, чем использование модели tcp
Мой вопрос: какая синхронизация лучше всего подходит для такого типа модели?