将Python对象放入共享内存

14 投票
1 回答
1258 浏览
提问于 2025-04-16 19:07

有没有一个Python模块可以让我把一些复杂的用户自定义类放到共享内存里?

我的意思是直接在共享内存中分配,而不是先把它们序列化(也就是转成一种可以存储的格式)再存进去。

multiprocessing.Valuemultiprocessing.Array 对我来说不太合适,因为它们似乎只支持基本数据类型和这些类型的数组。

到目前为止,我找到的唯一一个是POSH,但是它已经八年没有更新了。这让我觉得它要么非常稳定,要么就是过时了。在我花时间去尝试让它工作之前,我想知道有没有我还没发现的其他选择。

我只需要在Linux上使用这个功能。

1 个回答

1

这个问题有点棘手。我想到的最好解决办法是把你的对象进行“序列化”,然后使用 c_char_p,配合 multiprocessing.sharedctypes。不过,你还得确保在 c_char_p 中没有出现空字节,要么通过转义处理,要么转换成十六进制。

再想想,或许你可以考虑使用 POSH。

撰写回答