我在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
而不是过程。
我可以知道我的代码出了什么问题吗?
非常感谢。
def __name__ == "__main__":
应该是:
if __name__ == "__main__":
但是如果我使用 python 2.7 执行您的代码,我会得到:
def __name__ == "__main__":
^
SyntaxError: invalid syntax
如果我将def
重命名为 if
:
Main program starts here.
proc2
proc1
所以我想知道你是如何让你的代码工作的(你可能在粘贴到这里之前修改了它)