我正在尝试找出一种在 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/