我正在尝试找到一种在Python进程之间共享内存的方法。基本上,有些对象存在,多个Python进程需要能够读取(仅限读取)和使用(不可变)。目前,这是通过redis +字符串+cPickle实现的,但cPickle占用了宝贵的CPU时间,所以我不想使用它。我在互联网上看到的大多数Python共享内存实现似乎需要文件和pickle,这基本上就是我已经在做的事情,也正是我试图避免的。
我想知道是否有一种方法来编写类似于内存中的Python对象数据库/服务器以及相应的C模块来与数据库进行交互?
基本上,C模块将请求服务器提供要写入对象的地址,服务器将返回一个地址,然后模块将写入对象,并通知服务器给定键的对象已在指定位置写入磁盘。 然后,当任何进程需要检索给定键的对象时,它们只需向数据库询问该键的内存位置,服务器会响应位置,而模块将知道如何加载该内存空间并将Python对象传输回Python进程。
这是否完全不合理或者实现起来非常困难?我是在追求不可能的东西吗?欢迎任何建议。谢谢互联网。
multiprocessing
模块的共享机制。当然,该段落的第一句话建议不要这样做。 - millimoose