python - 多核 Python : multiprocessing Vs. zeroMQ?

标签 python multiprocessing zeromq

我想编写 python 代码来加载数据集作为输入并对其进行分析。

将有 5 个并行进程分析数据 - 每个进程将以不同的方式处理数据 - 以独特的方式。

在开始任何处理之前,master 脚本(将“启动”所有不同子进程的脚本)将定义一个空列表。

我希望所有不同的进程将它们的输出写入上面提到的同一个列表(意思是,每个进程都能够直接操作在 master 中定义的列表脚本)。

意思是,如果 process1 更改了该列表的第一个值,所有其他进程(在运行时)将看到该列表的第一个值已更改。


我觉得可以使用 2 个不同的 python 模块来解决这个问题:multiprocessingzeroMQ

在这种情况下,是否有任何理由偏爱其中之一?如果不是在同一台服务器上运行 master 脚本,您的答案会改变吗?我将在不同(多个)服务器之间拆分进程?

(如果重要的话,我使用的是 Linux)

最佳答案

你不能比较苹果和橘子。

multiprocessing 是一个 fork 多个进程的库。

zmq 是一个允许进程使用消息进行通信的库。

他们从事不同的工作。

关于python - 多核 Python : multiprocessing Vs. zeroMQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566880/

相关文章:

python - 在python中乘以多维数组

python - 在一行中搜索多次出现的单个表达式

python - 多处理池 'apply_async' 似乎只调用一次函数

zeromq - ZMQ : how does a router identify a dealer

c++ - 在 C++ 中读取通过 ZMQ 发送的 Flatbuffers 对象会引发未处理的异常

java - ZeroMQ 多线程 : create sockets on-demand or use sockets object pool?

python - 在无法查看电子邮件地址的情况下验证电子邮件地址

python - 在二维列表中查找搜索值的坐标

c# - 使用双缓冲技术进行并发读写?

python - 在python中并行化for循环