我想编写 python
代码来加载数据集作为输入并对其进行分析。
将有 5 个并行进程分析数据 - 每个进程将以不同的方式处理数据 - 以独特的方式。
在开始任何处理之前,master
脚本(将“启动”所有不同子进程的脚本)将定义一个空列表。
我希望所有不同的进程将它们的输出写入上面提到的同一个列表(意思是,每个进程都能够直接操作在 master
中定义的列表脚本)。
意思是,如果 process1
更改了该列表的第一个值,所有其他进程(在运行时)将看到该列表的第一个值已更改。
我觉得可以使用 2 个不同的 python
模块来解决这个问题:multiprocessing
和 zeroMQ
。
在这种情况下,是否有任何理由偏爱其中之一?如果不是在同一台服务器上运行 master
脚本,您的答案会改变吗?我将在不同(多个)服务器之间拆分进程?
(如果重要的话,我使用的是 Linux
)
最佳答案
你不能比较苹果和橘子。
multiprocessing 是一个 fork 多个进程的库。
zmq 是一个允许进程使用消息进行通信的库。
他们从事不同的工作。
关于python - 多核 Python : multiprocessing Vs. zeroMQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566880/