2

我有流动的计划:

一个数据处理过程 - The_process 几个数据产生过程 - 工人

我需要做的是共享列表 foo_list,其中包含另外两个大对象 list1、dict2、

foo_list = [list1, dict2]

在这些过程之间。工人应该只从 foo_list 读取,但我需要他们有一致的对应 list1 和 dict2。The_process 应该能够修改这些数据。

编辑:我需要工人更新 foo_list 的版本。The_process 偶尔会更新 foo_list,我需要工作人员尽快开始使用该更新版本。

我使用了多处理库中的 manager.list,但分析显示,它需要大约 25% 的程序时间,只是从工作人员的列表中获取数据。

所以问题是,有没有其他方法可以做到这一点?还是我做错了?

4

1 回答 1

2

在大多数情况下,共享内存不是要走的路。你最好(如果你有内存的话)制作这个列表的副本并将副本传递foo_list给每个进程,这样就不会浪费时间管理进程之间的列表。

当我尝试使用共享内存-> Python 多处理性能时,我自己也遇到了类似的问题

于 2013-07-02T09:02:04.327 回答