擅长:python、mysql、java
<p>您不必实例化多个池。在调用<code>pool.close()</code>之前,可以多次调用<code>pool.map(...)</code>。只有当您没有更多任务可提交到池时,才调用<code>pool.close()</code>。在</p>
<p>但需要注意的是,<code>pool.map(...)</code>是一个阻塞调用,直到提交给池的所有任务都完成后才会返回。对于您的目的来说,这可能是低效的-当池正在工作时,您可能需要做后台工作,例如收集/提交更多的任务。您可以改为使用<code>pool.map_async(...)</code>,但是您的代码会变得更加复杂。在</p>
<p><strong>旁注:</strong>我会小心你的名字。A多处理.池不是线程池。它是一个子进程池。线程池和进程池是不同的野兽,它们有各自的考虑。在</p>
<p>事实上,如果您的处理大部分都是numpy(C扩展,GIL已发布,即使处理繁重,也不太担心解释器级别的争用,线程=更少的IPC开销和系统资源需求等),那么您可能会发现您实际上想要一个自成一体的线程池。在</p>