python - python进程之间的共享内存

标签 python c shared-memory

我正在尝试找出一种在 python 进程之间共享内存的方法。基本上存在多个 python 进程需要能够读取(仅读取)和使用(无突变)的对象。现在这是使用 redis + strings + cPickle 实现的,但是 cPickle 占用了宝贵的 CPU 时间,所以我不想使用它。我在 Internet 上看到的大多数 python 共享内存实现似乎都需要文件和泡菜,这基本上是我已经在做的,也是我试图避免的。

我想知道是否有一种方法可以编写类似...基本上是内存中 python 对象数据库/服务器和相应的 C 模块来与数据库接口(interface)?

基本上,C 模块会向服务器请求一个地址来写入对象,服务器会响应一个地址,然后模块会写入对象,并通知服务器已写入具有给定键的对象指定位置的磁盘。然后,当任何进程想要检索具有给定键的对象时,它们只需向数据库询问给定键的内存位置,服务器将响应该位置,模块将知道如何将该空间加载到内存中,并且将 python 对象传回 python 进程。

这是完全不合理的还是真的很难实现?我是在追求不可能的事情吗?欢迎大家提出意见。感谢互联网。

最佳答案

从 Python 3.8 开始,您可以使用 multiprocessing.shared_memory.SharedMemory

关于python - python进程之间的共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302656/

相关文章:

c - 将 C 库导入 Xamarin 控制台项目

在链接列表中使用 "pointer"和 "pointer to pointer"时感到困惑

c - 如何在链表中插入多条数据

c++ - 在多作者情况下如何对文件支持的共享内存中的大页进行故障处理

c++ - OpenMP 超额订阅会导致内存错误吗?

c++ - 在 C/++ 上的只读共享内存中具有输入图的图算法 (lib)

python - 如何将列表中的某些分数分配给多个列表中的值并获取 python 中每个值的总和?

python - 我的单元测试还应该测试第三方库/包功能吗?

python - Flask 不加载带有查询字符串的 css 文件

python - 访问正在创建的对象分配给的名称