我一直在阅读Python"多处理",特别是" Pool"东西。我熟悉线程,但不熟悉这里使用的方法。如果我要将一个非常大的集合(比如某种字典)传递给进程池(" pool.map(myMethod,humungousDictionary)")是由字典在内存中复制而不是传递给关闭每个进程,还是只存在一个字典?我关心内存使用情况。提前谢谢。
答案 0 :(得分:1)
简短的回答是:否。进程在自己独立的内存空间中工作,有效地复制数据。
如果您的字典是只读的,并且不会进行修改,您可以考虑以下选项:
os.fork
生成多个工作人员的单个流程。因此,所有线程共享相同的上下文。您也可以考虑提及here,以便深入了解可能的解决方案。