无论是 os
模块还是 multiprocessing
模块都定义了一个名为 cpu_count
的函数。
os.cpu_count
的文档如下:
返回系统中的CPU数。 如果无法确定,则返回None。
multiprocessing.cpu_count
的文档说:
返回系统中的CPU数。 可能会引发NotImplementedError。 也可参考os.cpu_count()
在我的计算机上,它们都返回相同的结果:
>>> import os
>>> import multiprocessing as mp
>>> os.cpu_count()
8
>>> mp.cpu_count()
8
我本以为multiprocessing.cpu_count
只是对os.cpu_count
的简单引用,但事实并非如此:
>>> os.cpu_count is mp.cpu_count
False
那么它们之间有什么区别?我能保证它们总是返回相同的结果吗?
此外,如果我想为multiprocessing.Pool指定创建进程的数量,我应该使用os还是multiprocessing的函数?所以它们之间有什么区别?我能保证它们总是返回相同的结果吗?此外,如果我想为
multiprocessing.Pool
指定要创建的进程数,我应该使用os
还是multiprocessing
的函数?
mp.cpu_count()
是很有用的,因为在测试中你不必处理 NoneType。 - jwillis0720