Я ищу реализацию FIFO для одного производителя, которая бы работала быстрее, чем обычная блокировка-запись-разблокировка-сигнал / waitForSignal-блокировка-чтение-разблокировка.Я ищу что-то, поддерживаемое большинством операционных систем POSIX (хорошо подходит для x86), написанное на C или C ++.
Я не собираюсь передавать что-то большее, чем указатель.
Я не обязательно привязан к идее без блокировки, но я хочу что-то быстрое и правильное.В одной из статей, которые я прочитал по этому вопросу, упоминался подход с двумя очередями, который показался мне интересным, но с тех пор я не смог найти много информации об этом.
Из проведенного мной исследования,0mq (который предположительно использует структуру без блокировки для своей схемы inproc: //) выглядит как наиболее привлекательный вариант.При этом я хотел бы убедиться, что ничего не пропустил, прежде чем идти по этому пути.
Еще одна альтернатива может включать использование очереди сообщений POSIX, но, похоже, это будетмедленно для потока <-> поток связи;правда ли это?
Любая реализация очереди без блокировки одного производителя с одним производителем в C? кажется уместной, но принятый ответ там на самом деле не столько перечисление существующих библиотек, сколькоэто «преждевременная оптимизация - это плохо».