Могу ли я использовать очереди сообщений для обмена потоками

Я создаю несколько рабочих потоков из основного потока. Могу ли я создать message_queue для каждого потока из основного потока и отправлять сообщения из основного потока. Я спрашиваю об этом, потому что очереди сообщений предназначены для межпроцессного общения.

Нужно ли мне рассматривать что-то конкретное в отношении этого

1 ответ

Как упоминалось Очередь сообщений об ошибках не на основе очереди сообщений POSIX? (и упоминается в документации). Если вы говорите о потоках, у вас есть одно и то же адресное пространство и вам не нужны возможности межпроцессного взаимодействия.

Я бы посоветовал использовать контейнер STL по вашему выбору в моем классе-оболочке (имеет-отношение) и окружать сеттер/получатель с элементами синхронизации (mutable exclusion/mutex), как указано Как создать механизмы синхронизации в сегментах разделяемой разделяемой памяти? Отсутствующая сериализация объектов является преимуществом производительности перед межпроцессорной связью - копирование фрагментов данных между границами процессов. С другой стороны, вы можете использовать все опрятные функции, например. shared_ptr.

licensed under cc by-sa 3.0 with attribution.