簡體   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