我了解了Python多进程的Pipes/Queues/Shared ctypes Objects/Managers,我想将它们与Linux的匿名管道、命名管道、共享内存、套接字等进行比较。我现在有以下问题
Python 多处理的管道和队列模块基于匿名管道。它提供命名管道吗?
Python multiprocessing.sharedctypes 是否支持独立进程
沟通?我认为它只支持父亲和孩子的进程或
兄弟进程通信。
其中哪些仅用于亲子鉴定过程或
兄弟情谊,可以在独立进程之间进行通信
或者不同的主机?
它们各自有什么特点,应该如何选择呢?
提前致谢。
你的问题很广泛,大部分答案都可以在multiprocessing
模块文档。
以下是一个简短的答案。
- The 多处理侦听器和客户端允许选择命名管道作为传输介质。
-
来自文档:
multiprocessing.sharedctypes 模块提供了从共享内存中分配 ctypes 对象的函数,这些对象可以由子进程继承。
你不能使用multiprocessing.sharedctypes
跨没有父/子关系的进程的功能。
-
Managers and 听众和客户跨不同主机上的进程或没有父/子关系的进程工作。这
AF_INET
套接字系列可以在不同的主机上使用。尽管如此,我还是建议不要这样做。而是使用网络套接字或其他一些抽象机制。
- 差异和特征在文档.
Python multiprocessing
模块最初是在threading
蜜蜂。到那时,它支持的功能有所增加,但核心思想保持不变。这multiprocessing
模块旨在处理 Python 进程系列。对于任何其他用途,subprocess
模块是一个更好的选择。
对于跨多个主机分配任务和作业,有更好的解决方案来抽象低级基础设施。您可以查看 Python 项目,例如Celery or Luigi或更复杂的基础设施,例如阿帕奇梅索斯.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)