Python多处理 - 共享内存

时间:2014-02-12 18:14:36

标签: python python-2.7 multiprocessing

  1. 从主进程中,我创建了3个子进程,并传递了一个'common'类的实例......同一个实例被传递给所有3个子进程。
  2. 这个公共类有一个字典和一个队列(包含很多项目)
  3. 这些子进程从此队列中检索“项目”
  4. 对于这些项目,我调用REST服务来获取有关“项目”的一些数据
  5. 我将此信息添加到“常用”词典
  6. 没有错误
  7. 但是,当我尝试从主进程访问此字典时,它是空的。

2 个答案:

答案 0 :(得分:0)

为了在进程之间共享状态,最灵活的方法是使用multiprocessing.Manager。您也可以使用例如multiprocessing.Array,但只能包含相同类型的数据。

答案 1 :(得分:0)

感谢您的回复。

我设法使用了解决问题 multiprocessing.Manager()。字典()

这是最好的方式......我不完全确定。我想我需要在Multiprocessing上阅读更多内容。

我发现具有挑战性的事实是多处理模块提供了许多功能,作为初学者,要知道正确的“工具”用于工作是非常具有挑战性的。

我开始使用线程...然后转移到Processes ....然后使用Queues ....然后使用Managers。但是当我在这个主题上阅读更多内容时,我发现Python还有很多东西可以提供。