Python:如何共享不可点击的对象

Python:如何共享不可点击的对象,python,multiprocessing,python-multiprocessing,Python,Multiprocessing,Python Multiprocessing,我正在做一些多处理,我需要在两个进程之间共享一个实例。我一直在尝试使用多处理模块来实现这一点,但似乎没有太多希望与大家分享任何不能被腌制的东西;到目前为止,我已经尝试使用一个管理器并创建一个代理对象来处理我的对象。我知道共享可变对象实例并不完全是python的强项,但最简单的方法是什么 为了更清楚地规划我的情况,我专门在UNIX系统上工作,所以据我所知,它使用forks和copy-on-write内存管理。我需要共享的这个对象在主进程上是只读的,但在子进程上是读写的。我能想到的最简单的方法是,将

我正在做一些多处理,我需要在两个进程之间共享一个实例。我一直在尝试使用多处理模块来实现这一点,但似乎没有太多希望与大家分享任何不能被腌制的东西;到目前为止,我已经尝试使用一个管理器并创建一个代理对象来处理我的对象。我知道共享可变对象实例并不完全是python的强项,但最简单的方法是什么


为了更清楚地规划我的情况,我专门在UNIX系统上工作,所以据我所知,它使用forks和copy-on-write内存管理。我需要共享的这个对象在主进程上是只读的,但在子进程上是读写的。我能想到的最简单的方法是,将内存中对象实例的引用共享给子进程,并在进程之间进行通信,以便在主进程使用对象时不进行写入。

我自己解决了这个问题,但对于遇到此线程的具有相同问题的任何人:


我犯了一个错误,实例化了一个对象,然后调用该方法,因为SyncManager只是的一个子类。我没有详细研究为什么会出现这种情况,但我知道修复方法,那就是实例化一个,然后用它注册Python对象

您在使用管理器时面临的问题可能重复?@User我不能对我的类使用register方法,因为它们无法序列化。@User我想我刚刚解决了它。我使用同步管理器来注册我的类,而不是使用基管理器。我会再做一些测试,如果问题解决了,我会关闭线程。你应该回答你自己的问题并接受它作为答案。这有助于其他人更快地找到解决方案。