Python多处理启动方法不运行该进程

时间:2016-09-07 08:08:16

标签: python multithreading python-2.7 multiprocessing

我是多处理的新手,我正在尝试检查我是否可以使用以下代码同时运行两个进程:

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?

似乎这个过程一个接一个地运行。

我想使用多处理在多个文件上使用相同的函数来并行化文件转换。

1 个答案:

答案 0 :(得分:0)

我通过添加

来运行脚本
from multiprocessing import Process

但是,我没有两个数字的随机序列,模式总是A,B,A,B ..如果您知道如何显示两个进程同时运行,欢迎任何想法!