在 python 中的进程之间共享对象

Share object between processes in python

我正在寻找一个关于如何在 python 中的两个或多个进程之间共享复杂对象的非常简单的示例。 在我的主要我有类似

的东西
if __name__ == "__main__":
    FirstClass().start()
    SecondClass().start()

等...每个 class 定义如下:

class FirstClass(multiprocessing.Process):
    def __init__(self):
        super(FirstClass, self).__init__()
[...]

我想要一个 MySharedClass,其中包含我需要的所有数据(自定义对象列表等),我可以从子进程访问和修改这些数据...其他子进程当然应该看到更新的数据。

我知道我应该使用管理器,但文档看起来对我的技能来说有点混乱。 提前致谢。

刚刚找到解决方案...主要:

from multiprocessing.managers import BaseManager

class ShareManager(BaseManager):
pass


ShareManager.register('SharedData', SharedData)

if __name__ == "__main__":
    manager = ShareManager()
    manager.start()
    shared = manager.SharedData()
    FirstClass(shared).start()

其中 SharedData 是我的共享 class... 这是子 class:

class FirstClass(multiprocessing.Process):

    def __init__(self, shared):
        super(FirstClass, self).__init__()
        self.shared = shared

PS。 确保主线程不会死掉,否则你会失去管理器