在python多处理中,我有一个类型为Manager.dict()
的字典,这个字典的值是一个字符串列表,为了在进程之间正确共享字典,我是否需要使用普通列表或Manager.list()
作为值类型?
答案 0 :(得分:1)
Manager.dict()
将管理对数组的访问,不需要Manager.list()
。 Manager.dict()
返回的字典将是生活在管理器上的真实字典的代理。
管理员会让您阅读列表然而它不会自动保留您对其所做的任何更改。为此,您必须在使用它们时在客户端代码中设置值。有关详细信息,请参阅reference entry底部的注释。
这将触发整个列表的传输,这可能很昂贵。更糟糕的是,它没有为您提供有关并发写入的任何安全保证,因此在两个进程中同时写入相同的列表,只有第二个写入将覆盖第一个写入。
我很遗憾不能提出任何替代方案,因为我对你能够做出的权衡知之甚少。请随意发布另一个问题,描述这些问题!