多处理进程没有运行

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