Размещение объектов Python в общей памяти

есть ли модуль Python, который позволит мне размещать экземпляры нетривиальных пользовательских классов в общей памяти?

под этим я подразумеваю выделение непосредственно в общей памяти, а не маринование в нее и из нее.

multiprocessing.Value и multiprocessing.Array не будет работать для моего варианта использования, поскольку они, похоже, поддерживают только примитивные типы и их массивы.

единственное, что я нашел до сих пор является ПОШ, но это не изменилась за восемь лет. Это говорит о том, что он либо супер-стабильный, либо устарел. Прежде чем тратить время на попытки заставить его работать, я хотел бы знать, есть ли альтернативы, которые я еще не обнаружил.

мне нужно только это, чтобы работать на Linux.

1 ответов


Это довольно сложно. Лучшее решение, которое я могу придумать, - это мариновать ваши объекты и использовать c_char_p С многопроцессорная обработка.sharedctypes. Вам все равно придется убедиться, что никакие нулевые байты не попали в c_char_p, либо избегая их, либо конвертируя в hex.

с другой стороны, может быть, вам стоит пойти с шикарным.