我正在尝试在多处理中读取和写入字节数组。有没有办法使这种方法适用于子流程?
https://docs.python.org/3/faq/programming.html#how-do-i-share-global-variables-across-modules
由于用于定义mp和套接字的所有众多代码行,我将尽力总结出我能做到的最好的
我尝试在每个进程中导入config.py
config.py:
x = 0 # Default value of the 'x' configuration setting
y = 0
mod.py:
import config
def run_socket(socket):
data = socket.recv(8)
config.x = int.from_bytes(data[0:4])
config.y = int.from_bytes(data[4:8])
main.py:
import config
import mod
import multiprocessing as mp
#define and start a socket
def run_this():
while True:
mod.run_socket(socket)
aprocess = mp.Process(target = run_this, args=(variables,)
# I have 4 more process that I want to update config.x and config.y in. I cannot get them to update.
当前,除非我在run_socket函数中更新它们,否则所有值都将保持config.py值。但是我需要在其他过程中更新它们。这是在Linux上
答案 0 :(得分:0)
您需要使用multiprocessing.Manager。
sort | head -n 1
返回一个开始的multiprocessing.Manager
对象,该对象可用于在进程之间共享对象。返回的管理器对象对应于生成的子进程,并具有创建共享对象并返回相应代理的方法。