Размещение объектов Python в общей памяти
Есть ли модуль Python, который позволит мне помещать экземпляры нетривиальных пользовательских классов в общую память?
Под этим я подразумеваю выделение непосредственно в разделяемой памяти, а не травление в нее и из нее.
multiprocessing.Value
и multiprocessing.Array
wouldn ' t для моего варианта использования, поскольку они только поддерживают примитивные типы и массивы.
Единственное, что я нашел до сих пор, это POSH, но он не изменился за восемь лет. Это говорит о том, что он либо суперстабилен, либо устарел. Прежде чем инвестировать время в попытку заставить его работать, я хотел бы знать, есть ли альтернативы, которые я еще не обнаружил.
Мне нужно только это, чтобы работать в Linux.
Ответы
Ответ 1
Такой жесткий. Лучшее решение, которое я могу придумать, - это травление ваших объектов и использование c_char_p с multiprocessing.sharedctypes. Вы все равно должны убедиться, что нулевые байты не попали в c_char_p, либо путем экранирования, либо преобразования в hex.
С другой стороны, возможно, вам стоит пойти с POSH.