如果我理解文档,在子进程中,您应该从管道的子部分读取。
# Process Target function while True: # poll(None) because you don't want to go through the loop fast between commands if (self.child_pipe.poll(None)): command = child_pipe.recv() if (command.name == 'init_model'): self.init_model() elif (command.name == 'get_tree'): tree = self.get_fidesys_tree(*command.args) result = CommandResult(command.name, tree) self.child_pipe.send(result) elif(command.name == 'set_variable'): name = command.args[0] value = command.args[1] self.config[name] = value
你可以看看这里: http://docs.python.org/library/multiprocessing.html#exchanging-objects-between-processes 解决方案与您的解决方案相近,但似乎更容易。