我正在尝试在需要同步的进程之间共享共享内存的多个实例。例如,有一个摄像机块(过程),它将480x640图像传递到边缘检测器块,该边缘检测器块对图像执行边缘检测并将其传递到监视过程。 问题是如何将共享内存的多个实例(multiprocessing.Array())与相应的Lock()一起传递给进程?例如,边缘检测器需要一个输入阵列和一个输出阵列以及2个锁,以防止出现竞争情况。
还可以以某种方式将以下类的列表传递给多个multiprocessing.Process()进程吗?
'''
class Wire:
def __init__(self, identifier, sh_mem, lock):
self.id = identifier
self.value = sh_mem
self.lock = lock
def read(self):
self.lock.acquire()
return_value = self.value.copy()
self.lock.release()
return return_value
def write(self, to_write):
self.lock.acquire()
self.value = to_write.copy()
self.lock.release()
return
'''