我使用pyepics的multiproc,并且需要在并行运行的进程之间共享一个变量。我尝试简化目标: 让我们假设我有灯(lamp_ID = 0,1,2,3),它们可以通过称为 switch_on_light(id)的功能来打开/关闭。 此外,我有一个用于这4盏灯的主断路器。必须在通过过程变量( main_switch:state )接通各个灯之后接通主断路器,即顺序为:
非常重要的一点是,在主断路器之前打开各个灯,并且在主断路器关闭之前将各个灯关掉。
我的问题是我不知道如何告诉主断路器所有四个灯都已打开/关闭。也许可以使用提供一些反馈的共享变量?如果所有四个共享变量均为True,那么是否允许打开主断路器?
有两个python文件, lamp_operations.py 和 my_task.py 。 my_task.py 文件包含:
from lamp_operations import switch_on_light(id)
for id in [0, 1, 2, 3]:
processes.append(CAProcess(target=switch_on_light, args=(id)))
for p in processes
p.start()
for p in processes:
p.join()
# missing: implementation of main_breaker and feedback from the function switch_on_light(id)
任何想法如何实现这一目标? (单个灯不是由过程变量控制,而是由一个功能控制,即我不能要求灯的状态。)