我试图运行一段代码。这段代码都是关于多处理的。它在命令提示符下工作正常,它也会产生一些输出。但是当我尝试在pyscripter上运行这段代码时,它只是说脚本运行正常并且它不会生成任何输出,甚至它也不会显示任何错误信息。它甚至不会崩溃。如果有人能帮助我找到一个正确的解释器,这个多处理工作正常,那将会非常有用。 这是一段代码:
from multiprocessing import Process
def wait():
print "wait"
clean()
def clean():
print "clean"
def main():
p=Process(target=wait)
p.start()
p.join()
if _name_=='_main_':
main()
答案 0 :(得分:0)
对于我来说,普通的解释器在Windows 7上与multiprocessing
的工作正常。 (您的IDE可能不喜欢多处理。)
你必须要做
if __name__=='__main__':
main()
每个下划线(__
)代替1(_
)。
此外 - 如果您没有实际理由不使用它,multiprocessing.Pool
在大多数情况下比multiprocessing.Process
更容易使用。已经https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.pool
使用Pool的实现将是
import multiprocessing
def wait():
print "wait"
clean()
def clean():
print "clean"
def main():
p=multiprocessing.Pool()
p.apply_async(wait)
p.close()
p.join()
if __name__=='__main__':
main()
但使用哪种方法强烈依赖于你真正想要做的事情。