繁体   English   中英

使用多重处理作为本地IPC

[英]use multiprocessing as local IPC

我正在考虑使用Python的多处理程序包在本地python程序之间进行消息传递。

这似乎是去IF的正确方法:

  • 程序将始终在同一台计算机(和同一OS实例)上本地运行
  • 程序的实现将保留在Python中
  • 速度很重要

如果python进程是由用户独立运行的,例如一个进程没有产生另一个进程,是否可能?

怎么样?
该文档似乎仅提供其中一个产生另一个的示例。

程序将始终在同一台计算机(和同一OS实例)上本地运行

多处理允许具有远程并发

程序的实现将保留在Python中

是的,没有。 您可以将另一个命令包装在python函数中。 这将起作用,例如:

from multiprocessing import Process
import subprocess

def f(name):
    subprocess.call(["ls", "-l"])

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

速度很重要

这取决于许多因素:

  • 多少开销会导致进程之间的协调?
  • 您的CPU有多少个内核?
  • 每个进程需要多少磁盘I / O? 它们在同一物理磁盘上工作吗?
  • ...

如果python进程是由用户独立运行的,例如一个进程没有产生另一个进程,是否可能?

我不是该主题的专家,但是我曾经通过使用文件交换数据来实现了类似的操作[基本上,一个进程的输出文件被另一个进程监视为输入源,反之亦然]。

HTH!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM