Python多处理再次启动脚本?

时间:2014-12-05 16:10:38

标签: python python-multiprocessing

我在Python中使用multi processing。以下是我的代码的演示:

在功能main中:

from multiprocessing import Process

def __name__ == "__main__":
    print "Main program starts here."

    SOME CODE....

    process_1 = Process(target=proc1,  args = (arg1, arg2))
    process_2 = Process(target=proc2,  args = (arg3, arg4))

    process_1.start()
    process_2.start()

    process_1.join()
    process_2.join()

功能proc1proc2

def proc1(arg1, arg2):
    print "Proc1 starts from here."

    SOME CODE....

所以我期望看到输出是:

  

主程序从这里开始。

     

Proc1从这里开始。

     

Proc2从这里开始。

然而,我得到的是:

  

主程序从这里开始。

     

主程序从这里开始。

     

主程序从这里开始。

似乎proc1proc2都会启动main而非启动。

我可以知道我的代码有什么问题吗?

非常感谢。

1 个答案:

答案 0 :(得分:4)

def __name__ == "__main__":

应该是:

if __name__ == "__main__":

但是如果我用python 2.7执行你的代码,我得到:

    def __name__ == "__main__":
                  ^
SyntaxError: invalid syntax

如果我将def重命名为if

Main program starts here.
proc2
proc1

所以我想知道你是如何让你的代码工作的(你可能在修改它之前修改它)