Использование настоящей очереди сообщений приводит к тому, что вы получаете сообщения фиксированного размера.Если у вас большое количество сообщений разного размера, это может стать проблемой производительности.Использование сокета может быть способом обойти это, хотя после этого вы пытаетесь обернуть эту функциональность так, чтобы она стала идентична очереди, что непросто получить в деталях, особенно такие аспекты, как блокирование / неблокирование и атомарность.1001 *
Общая память быстрая, но требует управления (в итоге вы пишете версию malloc для управления SHM), плюс вам нужно каким-то образом синхронизировать и заблокировать ее.Хотя вы можете использовать библиотеки, чтобы помочь с этим, доступность зависит от вашей среды и языка.
Очереди просты, но в моем обсуждении сокетов указаны недостатки как минусы.Благовесты ответят на этот вопрос.
Как и всегда, с такими вещами, я бы предложил прочитать книги У. Ричарда Стивенса по IPC и сокетам.Нет лучшего объяснения, чем его!: -)