gpt4 book ai didi

Python:如何共享不可拾取的对象

转载 作者:行者123 更新时间:2023-11-28 18:39:04 25 4
gpt4 key购买 nike

我正在做一些多处理,我需要在两个进程之间共享一个实例。我一直在尝试使用 multiprocessing 模块来尝试完成此操作,但似乎没有太大希望分享任何无法腌制的东西;到目前为止,我已经尝试使用一个管理器并创建一个代理对象来按照 this SO question 来处理我的对象。和 this SO question .我知道共享可变对象实例并不完全是 python 的强项,但最简单的方法是什么?

为了更清楚地说明我的情况,我只在 UNIX 系统上工作,因此根据我的理解,它使用 fork 和写时复制内存管理。我需要共享的这个对象在主进程上是只读的,但在子进程上是读写的。我能想到的最简单的方法是将内存中对象实例的引用共享给子进程,并在进程之间通信,而不是在主进程使用对象时写入。

最佳答案

我自己解决了这个问题,但是对于任何遇到同样问题的人来说:

我错误地实例化了一个 SyncManager()对象然后调用 BaseManager.register()假设这可行的方法,因为 SyncManager 只是 BaseManager() 的子类.我没有仔细研究为什么会这样,但我知道解决方法,那就是实例化一个 BaseManager()。并用它注册你的 Python 对象。

关于Python:如何共享不可拾取的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com