多处理进程没有运行
Multiprocessing process does not run
我一直在尝试 运行 一个非常简单的多处理程序(下面的脚本)。但是,我得到的输出很简单:"Finished"
。进程或函数都不产生任何输出。我如何确保他们确实执行了 运行 并且我得到的输出类似于 "Function 1" "Function 2" "Finished"
?
如果这是一个重复的问题,我们深表歉意,我们将不胜感激。
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 docs
我一直在尝试 运行 一个非常简单的多处理程序(下面的脚本)。但是,我得到的输出很简单:"Finished"
。进程或函数都不产生任何输出。我如何确保他们确实执行了 运行 并且我得到的输出类似于 "Function 1" "Function 2" "Finished"
?
如果这是一个重复的问题,我们深表歉意,我们将不胜感激。
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 docs