Python multiprocessing.Pool 工人闲置

Python multiprocessing.Pool workers remain idle

我是 Python 的初学者。我正在尝试 运行 使用 multiprocessing.Pool 的简单函数,但是当我 运行 程序时,它没有得到处理。我可以看到生成了不同的进程,但它们 remain idle。例如,下面的代码确实生成了两个工作进程,但没有输出,也没有别的:

import multiprocessing

def f(x):
    print("Process "+str(x))
    return True

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=2)            
    result = pool.map(f, range(1000)) 

我是 运行ning Python 3.9 使用 Microsoft Visual Studio 2019。OS 是 Windows 10。我在使用 [=24 时遇到了同样的问题=] 3.7 在这台电脑上。我在另一台计算机上尝试了相同的代码(也 Windows 10,VS2019)并且它工作正常。不同的是这个是i9 Processor,而另一个是i7.

我在网上搜索过,但没有遇到任何类似的问题,也没有解决我的问题。有谁知道为什么会发生这种情况 and/or 可能的修复方法?处理器的类型可能与它有关吗?谢谢!

这只是一个猜测:

我知道这不会 运行 在 Jupyter Notebook 或交互式解释器下。请参阅 multiprocessing docs,特别是部分:

这些环境的解决方案是将您的工作函数 f 放在一个单独的模块中,例如 worker.py,并且导入辅助函数:

import multiprocessing
from worker import f

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=2)
    result = pool.map(f, range(1000))          

试一试,然后让我们也有 Visual Studio 的其他人知道这是否有效。谢谢