Python 2.7 如何更改multiprocessing.pool中的进程数?

Python 2.7 如何更改multiprocessing.pool中的进程数?,python-2.7,multiprocessing,pool,Python 2.7,Multiprocessing,Pool,我想更改multiprocessing.pool中的进程数,但不知道如何更改。 有没有办法做到这一点,或者我应该尝试杀死旧的池并创建一个具有不同进程数的新池,如果有,我如何杀死旧池?是否使用close()就足够了?有一个私有方法,可以更改池中的工作进程数。然而,我认为你不应该用这个。首先,由于该方法的名称以下划线开头,因此它是一个私有方法——一个实现细节。从理论上讲,它可能会在未来发生变化,并破坏您的代码 但也许更重要的是,您的机器拥有有限数量的处理器。通常,这是池中要使用的理想进程数。如果您拥

我想更改
multiprocessing.pool
中的进程数,但不知道如何更改。
有没有办法做到这一点,或者我应该尝试杀死旧的池并创建一个具有不同进程数的新池,如果有,我如何杀死旧池?是否使用
close()
就足够了?

有一个私有方法,可以更改池中的工作进程数。然而,我认为你不应该用这个。首先,由于该方法的名称以下划线开头,因此它是一个私有方法——一个实现细节。从理论上讲,它可能会在未来发生变化,并破坏您的代码

但也许更重要的是,您的机器拥有有限数量的处理器。通常,这是池中要使用的理想进程数。如果您拥有更多,那么您的池工作人员将为访问您的CPU而相互斗争。如果您的问题是CPU受限的,那么拥有比CPU更多的工作人员是没有好处的

如果要限制多处理池使用的CPU数量,则最简单的方法是提前确定硬限制应该是多少,并从一开始就实例化池以使用该数量的工作线程:

pool = mp.Pool(processes=4)
还要注意,
mp.cpu\u count()
返回可用的处理器数量。如果未设置
进程
参数,
mp.Pool
将默认使用
mp.cpu\u count()
进程