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

时间:2015-04-09 10:45:34

标签: python inter-process-communicat

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

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

但我的问题要简单得多。我有两个python进程在相同的计算机上连续运行,而slave进程偶尔需要来自主进程的三个浮点数。

不是编程专家,我会在计算机内存中的某处保留三个浮动插槽,主进程会不断更新这些浮动插槽,并且从属进程只需在需要信息时读取这些内存插槽。所以本质上主人一直在说话,而奴隶只在需要信息时才会听。

这可能没有太大的麻烦和努力吗?如果可能,请保持简单的答案,因为我不是编程专家。

3 个答案:

答案 0 :(得分:1)

这取决于您不需要的编程专家级别,您需要多快更新这些数字,以及您使用的操作系统。

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

答案 1 :(得分:0)

这两个进程(下面的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()

锁定'可能不是必需的,但在多线程编程中是很好的做法。

答案 2 :(得分:0)

最后我使用了RPyC库(https://rpyc.readthedocs.org/en/latest/)。易于使用且功能强大。