我在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()
功能proc1
和proc2
:
def proc1(arg1, arg2):
print "Proc1 starts from here."
SOME CODE....
所以我期望看到输出是:
主程序从这里开始。
Proc1从这里开始。
Proc2从这里开始。
然而,我得到的是:
主程序从这里开始。
主程序从这里开始。
主程序从这里开始。
似乎proc1
和proc2
都会启动main
而非启动。
我可以知道我的代码有什么问题吗?
非常感谢。
答案 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
所以我想知道你是如何让你的代码工作的(你可能在修改它之前修改它)