【问题标题】:Share object between processes in python [duplicate]在python中的进程之间共享对象[重复]
【发布时间】:2017-12-18 22:42:55
【问题描述】:

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

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

等等...每个类的定义如下:

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

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

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

【问题讨论】:

标签: python-3.x python-multiprocessing


【解决方案1】:

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

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 FirstClass(multiprocessing.Process):

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

附言。 确保主线程不要死,否则你会失去经理

【讨论】:

    猜你喜欢
    • 2016-02-05
    • 2017-02-02
    • 2023-03-24
    • 2012-07-22
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多