一个 python 进程为另一个 python 进程提供信息

One python process providing information for another python process

我知道类似的问题偶尔会出现

communication between 2 programs in python 要么 Communication between two python scripts

但我的问题要简单得多。我有两个 python 进程连续 运行 在 同一台 计算机和从进程 偶尔 需要主进程的三个浮点数.

不是编程专家,我会在计算机内存的某个地方预留三个浮点槽,主进程会不断更新,而从进程需要信息时会简单地读取这个内存槽。所以 本质上 master 一直在说话,而 slave 只在需要信息时才听。

不费吹灰之力就能做到吗?如果可能的话,尽量保持简单的答案,因为我不是编程专家。

这取决于您不是编程专家的水平,您需要多快更新这些数字,以及 OS 您在做什么。

综上所述,"Easy" 方法只是将它们写入一个(或多个)文件,从属进程会监视这些文件的变化,并在它们更新时读取。

难道这两个进程(下面的 foo 和 bar)不只是主进程的线程吗?

import time
import threading

x = 0.0
y = 0.0
z = 0.0
lock = threading.RLock()

def foo():
    global lock
    while True:
        time.sleep(10)
        with lock:
            print x, y, z

def bar():
    global x, y, z, lock
    while True:
        time.sleep(2)
        with lock:
            x += 0.5
            y += 0.6
            z += 0.7

fooThread = threading.Thread(target=foo)
fooThread.daemon = True
barThread = threading.Thread(target=bar)
barThread.daemon = True

barThread.start()
fooThread.start()

'lock' 可能不是必需的,但在多线程编程中是个好习惯。

最后还是用了RPyC库(https://rpyc.readthedocs.org/en/latest/)。简单易用,功能强大。