Честно говоря, самый простой способ сделать это - использовать отображенный в памяти файл. Тогда вы просто ищите и пишите, чтобы спасти вещи, или ищите и читаете, чтобы получить вещи.
Кроме того, всегда существует концепция актеров, когда вы вообще не делитесь памятью, просто отправляете сообщения между актерами, каждый из которых является куратором своего собственного хранилища данных. Это проще для программирования, особенно с такими инструментами, как ZeroMQ, которые делают межпроцессный и межпоточный обмен сообщениями настолько простым.
Если вы объедините две идеи, то у каждого процесса актера будет область файла отображения памяти, которой они владеют, и вы будете передавать сообщения туда и обратно, чтобы сказать им, что читать или писать.
См. Этот вопрос для получения дополнительной информации о файлах с отображением в памяти в качестве совместно используемой памяти Совместно используемая память Posix и сопоставленные файлы
Вот один из IPC, который вам понадобится для нескольких процессов для координации действий IPC против доменного носка против именованных каналов
Если у вас есть большие блоки данных для перемещения в сообщениях, вы, вероятно, захотите оставить данные на месте в отображенном в памяти файле и реализовать некоторую форму совместного использования без блокировок. Google может использовать множество ключевых слов без блокировок в сочетании с «общей памятью» или «структурами данных».