python multiproc共享变量

时间:2019-02-25 00:23:49

标签: python parallel-processing

我使用pyepics的multiproc,并且需要在并行运行的进程之间共享一个变量。我尝试简化目标: 让我们假设我有灯(lamp_ID = 0,1,2,3),它们可以通过称为 switch_on_light(id)的功能来打开/关闭。 此外,我有一个用于这4盏灯的主断路器。必须在通过过程变量( main_switch:state )接通各个灯之后接通主断路器,即顺序为:

  1. 通过在 parallel
  2. 中执行功能 switch_on_light(lamp_ID)来打开各个灯。
  3. 通过将 main_switch:state 设置为 on
  4. 来打开主断路器
  5. 关闭主断路器
  6. 关闭灯(与步骤1相同,只是关闭,而不是打开

非常重要的一点是,在主断路器之前打开各个灯,并且在主断路器关闭之前将各个灯关掉。

我的问题是我不知道如何告诉主断路器所有四个灯都已打开/关闭。也许可以使用提供一些反馈的共享变量?如果所有四个共享变量均为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)

任何想法如何实现这一目标? (单个灯不是由过程变量控制,而是由一个功能控制,即我不能要求灯的状态。)

0 个答案:

没有答案