title: Purpose of pool.join, pool.close in multiprocessing?
body: <p>In the link below there is an explanation of the <code>map</code> method on the <code>Pool</code> class.</p>
  
  <p>It seems that it <em>blocks</em> until the result is ready. This implies that there is no need to do <code>pool.close(); pool.join()</code> after running <code>pool.map</code>, however it is demo'd in this way in <a href="http://chriskiehl.com/article/parallelism-in-one-line/" rel="noreferrer">this</a> blog.</p>
  
  <p>Am I missing something or is there a need to do pool.close after running <code>pool.map</code> (as opposed to <code>pool.map_async</code>?  Note I am using <code>[multiprocessing.dummy][2]</code>, which is provides a similar api to multiprocessing, but uses threading under the covers.</p>
  
  <p><a href="https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.multiprocessing.Pool.map" rel="noreferrer">https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.multiprocessing.Pool.map</a></p>