python多处理池方法不起作用

python多处理池方法不起作用,python,parallel-processing,multiprocessing,Python,Parallel Processing,Multiprocessing,我正在建立一个使用50核的并行计算管道。但是,该系统仅使用1个内核。下面是我正在使用的测试代码 来自多处理导入池的 输入数学 def f(x): 返回数学阶乘(x) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 将池(50)作为p: 打印(p.map(f,范围(10000))) 我将代码保存在脚本中并运行它。但是,仅使用一个核心。关于我做错了什么有什么建议吗 为了打印p.map(f,range(10000))表达式,在p.map(f,range(100

我正在建立一个使用50核的并行计算管道。但是,该系统仅使用1个内核。下面是我正在使用的测试代码

来自多处理导入池的

输入数学
def f(x):
返回数学阶乘(x)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
将池(50)作为p:
打印(p.map(f,范围(10000)))
我将代码保存在脚本中并运行它。但是,仅使用一个核心。关于我做错了什么有什么建议吗


为了
打印
p.map(f,range(10000))
表达式,在
p.map(f,range(10000))上隐式调用
str

在这么长的列表上调用
str
和这么大的数字是非常缓慢的。这就是一直在占用的东西。计算本身几乎是即时完成的,因此在查看核心使用情况时,您会错过它


请注意,
打印
在这种情况下也相对较快。具体来说,就是将列表转换为字符串占用了这里的时间。

确定吗?99%的代码执行时间将用于执行
print()
(将在一个线程上),而不是计算值。你可能只是错过了它在一瞬间占用了50个核。