(语言是Python 3)
我正在编写一个包含模块multiprocessing
并使用Pool
的程序。我需要一些在所有进程之间共享的变量。父进程将初始化此变量并将其作为参数传递给p.map()
。我希望子进程更改此变量。这样做的目的是因为子进程的第一部分工作应该并行完成(计算工作不需要任何其他进程的数据)。但是,进程工作的第二部分需要按顺序完成,一个接一个进行,因为它们正在写入文件,并且该文件的内容应该是有序的。我希望每个进程都等到其他进程完成后再继续。我将使用变量记录整个程序的“进度”,例如当第一个进程写入文件时,它会将变量加1。我希望这是开始写入文件的下一个进程的信号。但我需要某种waituntil()
函数来使进程等待,直到Value
变量指示它是“转向”写入文件。
以下是我的两个问题:
我需要一个子进程可以编辑的变量,子进程实际上可以获取该变量的值。我应该使用什么类型的变量?我应该使用Value
,Manager
还是其他什么?
我需要让进程等到上面描述的变量等于某个值,表示轮到他们写入文件了。我可以使用任何类型的waituntil()
函数吗?