[英]Multiprocessing process does not run
我一直在尝试运行一个非常简单的多处理程序(下面的脚本)。 但是,我得到的 output 很简单: "Finished"
。 进程或 function 都不会产生任何 output。 我如何确保它们确实运行并且我得到一个看起来像"Function 1" "Function 2" "Finished"
的 output ?
抱歉,如果这是一个重复的问题,任何帮助将不胜感激。
import multiprocessing
def func(n):
print('Function',n)
p1 = multiprocessing.Process(target=func, args=(1, ))
p2 = multiprocessing.Process(target=func, args=(2, ))
p1.start()
p2.start()
p1.join()
p2.join()
print("Finished")
电脑信息:Python 版本 3.8.8,macOS 12.0.1,Apple M1 芯片
尝试将__name__ == '__main__'
添加到您的代码中,以确保新的 Python 解释器可以安全地导入主模块,而不会导致意外的副作用。
def func(n):
print('Function',n)
if __name__ == '__main__':
p1 = multiprocessing.Process(target=func, args=(1, ))
p2 = multiprocessing.Process(target=func, args=(2, ))
p1.start()
p2.start()
p1.join()
p2.join()
print("Finished")
来源: Python 文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.