在Python中的进程之间共享对象 [英] Share object between processes in python
本文介绍了在Python中的进程之间共享对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一个非常简单的示例,说明如何在Python中的两个或多个进程之间共享复杂对象。 在我的主机上,我有类似
的内容if __name__ == "__main__":
FirstClass().start()
SecondClass().start()
等。每个类的定义如下:
class FirstClass(multiprocessing.Process):
def __init__(self):
super(FirstClass, self).__init__()
[...]
我希望有一个MySharedClass,其中包含我需要的所有数据(自定义对象列表等),我可以从子流程访问和修改这些数据...当然,其他子流程应该会看到更新后的数据。
我知道我应该使用管理器,但文档对于我的技能来说看起来有点令人困惑。 提前谢谢。
推荐答案
刚找到解决方案...Main:
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
PS。确保主线程不会死,否则您将失去管理器
这篇关于在Python中的进程之间共享对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文