我是多处理的新手,我正在尝试检查我是否可以使用以下代码同时运行两个进程:
import random, time, multiprocessing as mp
def printer():
"""print function"""
z = random.randit(0,60)
for i in range(5):
print z
wait = 0.2
wait += random.randint(1,60)/100
time.sleep(wait)
return
if __name__ == '__main__':
p1 = mp.Process(target=printer)
p2 = mp.Process(target=printer)
p1.start()
p2.start()
虽然我通过is.alive()方法检查过程是否正在运行,但此代码在控制台上没有打印任何内容。
但是,我可以使用以下方式打印:
p1.run()
p2.run()
问题1:为什么start()方法不运行该进程?
问题2:使用run()方法运行代码时,为什么会得到类似
的序列25,25,25,25,25,11,11,11,11,11
而不是
25,25,11,25,11,11,11,25,11,25?
似乎这个过程一个接一个地运行。
我想使用多处理在多个文件上使用相同的函数来并行化文件转换。
答案 0 :(得分:0)
我通过添加
来运行脚本from multiprocessing import Process
但是,我没有两个数字的随机序列,模式总是A,B,A,B ..如果您知道如何显示两个进程同时运行,欢迎任何想法!