python多处理,作为Manager.dict()值的字符串列表

时间:2015-09-20 19:29:47

标签: python python-2.7

在python多处理中,我有一个类型为Manager.dict()的字典,这个字典的值是一个字符串列表,为了在进程之间正确共享字典,我是否需要使用普通列表或Manager.list()作为值类型?

1 个答案:

答案 0 :(得分:1)

Manager.dict()将管理对数组的访问,不需要Manager.list()Manager.dict()返回的字典将是生活在管理器上的真实字典的代理。

管理员会让您阅读列表然而它不会自动保留您对其所做的任何更改。为此,您必须在使用它们时在客户端代码中设置值。有关详细信息,请参阅reference entry底部的注释。

这将触发整个列表的传输,这可能很昂贵。更糟糕的是,它没有为您提供有关并发写入的任何安全保证,因此在两个进程中同时写入相同的列表,只有第二个写入将覆盖第一个写入。

我很遗憾不能提出任何替代方案,因为我对你能够做出的权衡知之甚少。请随意发布另一个问题,描述这些问题!