擅长:python、mysql、java
<p>理想情况下,应该只调用一次<code>Pool()</code>构造函数,而不是再次调用。创建工作进程时有大量的开销,每次调用<code>Pool()</code>时都要支付这些开销。由单个<code>Pool()</code>调用创建的进程保持在附近!当他们完成你在程序的某个部分交给他们的工作时,他们会一直呆在那里,等待着有更多的工作要做。</p>
<p>至于<code>Pool.close()</code>,您应该在-并且只有在-您永远不会向<code>Pool</code>实例提交更多工作时调用它。所以<code>Pool.close()</code>通常在主程序的可并行部分完成时调用。当所有已分配的工作完成时,工作进程将终止。</p>
<p>调用<code>Pool.join()</code>等待工作进程终止也是一个很好的实践。除其他原因外,通常没有好的方法可以在并行代码中报告异常(异常发生在与主程序正在执行的操作模糊相关的上下文中),并且<code>Pool.join()</code>提供了一个同步点,可以报告在工作进程中发生的一些异常,否则您将看不到这些异常。</p>
<p>玩得开心:-)</p>