在大多数情况下,将现有对象的引用传递给另一个进程并不是很理想。相反,您可以创建要在流程之间共享的类:
class MySharedClass:
# stuff...
然后,您将像这样创建一个代理管理器:
import multiprocessing.managers as m
class MyManager(m.BaseManager):
pass # Pass is really enough. Nothing needs to be done here.
然后,您在该Manager上注册课程,如下所示:
MyManager.register("MySharedClass", MySharedClass)
然后,实例化了经理并启动了经理之后,manager.start()
您就可以使用创建类的共享实例manager.MySharedClass
。这应该适合所有需求。返回的代理的工作原理与原始对象完全相同,除了文档中描述的某些例外。