我遇到了多处理同步的问题 以下代码:
from multiprocessing import Process
list = [1,2,3,4,5]
def function1():
for i in range (5):
print list[i]
if __name__ == '__main__':
for num in range(2):
Process(target=function1).start()
结果是
11
22
33
44
55
如何让流程按顺序运行?例如:Process1适用于i = 1,同时Process2适用于i = 2,依此类推?
答案 0 :(得分:1)
你的功能是打印数字1到5,无论它在哪个进程中执行。你看到11,22等的原因是因为两个进程都在" parallel"所以他们同时打印价值观#34;。
您需要将流程编号传递给该功能,以便它知道要打印的内容,然后您的所有功能都必须打印流程编号。
这应该有效:
from multiprocessing import Process
list = [1,2,3,4,5]
def function1(x):
print x
if __name__ == '__main__':
for num in range(2):
Process(target=function1, args=[list[num]]).start()