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 的其他人知道这是否有效。谢谢
我是 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 的其他人知道这是否有效。谢谢