至於多的螺紋和多進程池是必要的,使代碼安全?如果沒有他們會產生什麼壞結果?多的螺紋和多進程池在<code>multiprocessing</code></p> <pre><code>pool = Pool() result = pool.map(func, arg) pool.close() pool.join() </code></pre> <p>爲什麼<code>close</code>和<code>join</code>多處理
在循環中,最好將這些行放在循環內部還是外部?
例如,
pool = Pool()
for x in a_ndarray:
result = pool.map(func, x)
save(result)
pool.close()
pool.join()
和
pool = Pool()
for x in a_ndarray:
result = pool.map(func, x)
save(result)
pool.close()
pool.join()
我看到其他人則建議爲IO密集型任務CPU密集型任務和多螺紋多進程。但是,將多線程應用於CPU限制和多進程限制IO限制的缺點是什麼?
我得到'close'和'join'對釋放池資源非常有用。但是由於'map'本身阻塞直到結果準備好,爲什麼'close'和'join'是必要的? 'non_fixed_time_function'是否啓動了一些其他與'pool'相關或不相關的子進程?如果不相關,'join'可以監視任何子進程? – Lee
對不起,您在哪裏使用過'map' ?,關於您發佈的代碼,除非明確使用'join',否則它不會自行阻止。 –
對不起,應該是Q中的'pool.map()',而不是'pool()'。 – Lee