我想用Python实现以下工作流。在这个例子中,我有5个进程在运行平行。一过程被定义为经理,而其他人都是工人。经理以循环方式多次执行控制例行程序,直到所有工人停止。在
关于这个问题的主要观点是,每个工人从一个不同的工作清单开始。然而,当他们在处理他们的工作时,他们会将更多的工作添加到自己的列表中,并且在某些情况下,重复工作的情况会发生在工人身上。经理的职责是避免重复工作。在
我目前正在尝试使用Python多处理和管道来实现这一点。下面是我的代码,用于对通信进行测试:import multiprocessing as mp
import time
import random
def checkManager(i, data_pipe, com_pipe, work_list):
com_out, com_in = com_pipe
if com_out.poll(): ##check if there is anything to read
msg = com_out.recv()
print i, " received message ", msg
if msg == "SEND":
data_out, data_in = data_pipe
data_in.send(work_list)
work_list = com_out.recv()<