我知道偶尔会出现类似的问题
communication between 2 programs in python 要么 Communication between two python scripts
但我的问题要简单得多。我有两个python进程在相同的计算机上连续运行,而slave进程偶尔需要来自主进程的三个浮点数。
不是编程专家,我会在计算机内存中的某处保留三个浮动插槽,主进程会不断更新这些浮动插槽,并且从属进程只需在需要信息时读取这些内存插槽。所以本质上主人一直在说话,而奴隶只在需要信息时才会听。
这可能没有太大的麻烦和努力吗?如果可能,请保持简单的答案,因为我不是编程专家。
答案 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/)。易于使用且功能强大。