Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何更改multiprocessing.pool中的进程数?_Python 2.7_Multiprocessing_Pool - Fatal编程技术网

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()
进程