我有一个流动的方案:
一个数据处理过程-The_process很少的数据生成过程-工人
我需要做的是共享列表foo_list,其中包含另外两个大对象list1、dict2和
foo_list = [list1, dict2]
在这些过程之间。工作人员应该只读取foo_list,但我需要他们具有一致的对应list1和dict2。进程应该能够修改这些数据。
编辑:我需要工人更新foo_list的版本。process偶尔会更新foo_list,我需要工作人员尽快开始使用更新后的版本。
我使用过多处理库中的manager.list,但评测显示,它大约占用了程序时间的25%,只是由worker从列表中获取数据。
所以问题是,还有其他方法可以做到吗?还是我做错了?
在大多数情况下,共享内存是不可行的。您最好(如果您有足够的内存)复制此列表,并将foo_list
的副本传递给每个进程,这样就不会浪费时间在进程之间管理列表。
当我尝试使用共享内存->Python多处理性能