我有一个程序,它需要一个非常大的输入文件并从中制作一个字典。由于无法将其放入内存中,因此我决定使用搁置将其写入磁盘。现在我需要利用系统中可用的多个内核(其中 8 个),以便加快解析速度。我认为最明显的方法是将我的输入文件分成 8 个部分并同时在所有 8 个部分上运行代码。问题是我最后只需要一本字典。不是8个。那么如何使用搁置来并行更新一个字典呢?
问问题
4348 次
2 回答
8
我在这里给出了一个非常详细的答案,关于在 python 中处理来自多个进程的单个文件
不要试图弄清楚如何让多个进程同时写入搁置。考虑一下如何让单个流程将结果交付搁置。
这个想法是你有一个单一的进程产生一个队列的输入。然后,您有尽可能多的工作人员来接收排队的项目并完成工作。完成后,它们将结果放入结果队列中,以供接收器读取。好处是您不必提前手动拆分工作。只需产生“输入”并让读取的任何工作人员接受并处理它。
使用此模式,您可以根据系统功能扩大或缩小工作人员。
于 2012-07-15T17:29:06.357 回答