Python中的多处理/多线程。。?

Python中的多处理/多线程。。?,python,performance,algorithm,memory-management,Python,Performance,Algorithm,Memory Management,我有一个我想要多次处理的代码(多重处理),多个进程中的每个进程的输出都应该存储在一个公共内存中,然后进行相应的处理 每个进程执行一段代码(维护一个字典),每个进程应将数据并排存储在一个公共内存中(并排存储,如果不可能,则最后存储所有字典) 例如 process1 -> dict1, process2 -> dict2, process3 -> dict3 >main_dict = dict1 + dict2 + dict3 我正在用Python执行这段代码 我

我有一个我想要多次处理的代码(多重处理),多个进程中的每个进程的输出都应该存储在一个公共内存中,然后进行相应的处理

每个进程执行一段代码(维护一个字典),每个进程应将数据并排存储在一个公共内存中(并排存储,如果不可能,则最后存储所有字典)

例如

process1 ->  dict1,  
process2 -> dict2, 
process3 -> dict3

>main_dict = dict1 + dict2 + dict3
我正在用Python执行这段代码

我也可以在这里做多线程,但是多线程并不像我听说的那样并行。。。所以我可以进行多重处理。请告诉我在多处理模式下维持这种场景的过程,而不浪费太多时间或离开理想的处理器

谢谢

请看模块

文档中有许多示例说明了如何使用它。
最终,这可能会帮助您解决问题…

请查看模块

文档中有许多示例说明了如何使用它。

最终,这可能会帮助您解决问题…

您将需要查看该模块,尽管我认为您无法使用Python中的字典实现共享内存--我认为您需要序列化它们并通过队列发送它们

多线程实际上并不像我听说的那样并行。。。所以我可以进行多重处理。请告诉我在多处理模式下维持这种场景的过程,而不浪费太多时间或离开理想的处理器

如果您不想离开处理器,那么您将无法获得任何额外的并行性,除非您是IO绑定的

这意味着,如果你在做大量的CPU工作,那么留在同一个处理器上进行多处理只会让你的速度变慢。提高并行性的唯一方法是使用其他处理器。(即使它们是“虚拟”超线程cpu。)

另一方面,如果你通过从内存或网络中读取数据而减慢了速度(事实似乎并非如此),那么这个模块会更合理。但由于


简言之:你要求的是矛盾的东西。弄清楚您实际需要什么,然后选择一种方法。

您将需要查看该模块,尽管我认为您无法使用Python中的字典实现共享内存--我认为您需要序列化它们并通过队列发送它们

多线程实际上并不像我听说的那样并行。。。所以我可以进行多重处理。请告诉我在多处理模式下维持这种场景的过程,而不浪费太多时间或离开理想的处理器

如果您不想离开处理器,那么您将无法获得任何额外的并行性,除非您是IO绑定的

这意味着,如果你在做大量的CPU工作,那么留在同一个处理器上进行多处理只会让你的速度变慢。提高并行性的唯一方法是使用其他处理器。(即使它们是“虚拟”超线程cpu。)

另一方面,如果你通过从内存或网络中读取数据而减慢了速度(事实似乎并非如此),那么这个模块会更合理。但由于


简言之:你要求的是矛盾的东西。找出您实际需要的,然后选择一种方法。

子流程更适合启动外部命令,OP似乎使用python代码。子流程更适合启动外部命令,OP似乎使用python代码。