我在标准客户端-服务器模型中使用 pyhton 的多处理包。
我在服务器中有几种类型的对象,我通过该BaseManager.register
方法注册,并通过代理从客户端使用(基于AutoProxy
类)。
当我从多个客户端线程使用这些代理时,我会弹出随机错误,并且在阅读了一些内容后,我发现代理实例本身不是线程安全的。从python 多处理文档中查看:
代理的线程安全
不要使用来自多个线程的代理对象,除非你用锁保护它。(使用相同代理的不同进程永远不会出现问题。)
我的场景非常适合这个。好的,我知道它为什么会失败。但我希望它工作:) 所以我寻求建议 - 使这个线程安全的最佳方法是什么?
我的特殊情况是(a)我 90% 的时间都在使用单个客户端线程,(b)代理背后的实际对象是线程安全的,以及(c)我想调用同一个代理的多个方法-同时对象。
和往常一样,互联网,帮助我的人将永生不死!那些尽力而为的人也可能获得安慰奖。
谢谢,
约纳坦