擅长:python、mysql、java
<blockquote>
<p>So, why can I not call <code>Pool.join()</code> before <code>Pool.close()</code></p>
</blockquote>
<p>因为<a href="https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.join" rel="nofollow noreferrer">^{<cd1>}</a>等待工人退出</em>。不仅要完成任务,还要真正退出。如果你没有事先打电话给<code>close()</code>,那么就没有人告诉工人们退出,他们处于待命状态,准备接受进一步的任务</p>
<p>因此,对<code>join()</code>的调用之前没有对<code>close()</code>的调用,只会挂起-<code>join()</code>将永远等待工人退出,这是没有人告诉他们的。因此,如果yopu试图这样做,Python将引发<code>ValueError("pool is still running")</code>错误</p>
<p>正如大卫·施瓦茨所指出的,不要调用<code>join()</code>来“同步”——这不符合这个目的</p>