Python多处理重新启动脚本?

Cha*_*ame 1 python python-multiprocessing

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

在功能上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()
Run Code Online (Sandbox Code Playgroud)

在函数proc1和中proc2

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

    SOME CODE....
Run Code Online (Sandbox Code Playgroud)

所以我期望看到的输出是:

主程序从这里开始。

Proc1从这里开始。

Proc2从这里开始。

然而,我得到的是:

主程序从这里开始。

主程序从这里开始。

主程序从这里开始。

看来 和 都proc1启动proc2main而不是进程。

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

非常感谢。

Rvd*_*vdK 5

def __name__ == "__main__":
Run Code Online (Sandbox Code Playgroud)

应该:

if __name__ == "__main__":
Run Code Online (Sandbox Code Playgroud)

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

    def __name__ == "__main__":
                  ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

如果我重命名defif

Main program starts here.
proc2
proc1
Run Code Online (Sandbox Code Playgroud)

所以我想知道你如何让你的代码工作(你可能在将其粘贴到此处之前对其进行了修改)

  • 这不是一个语法错误,而不是对主进程代码造成不良保护吗? (2认同)