<p>在退出池之前,需要等待附加的<a href="https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult" rel="nofollow noreferrer">^{<cd1>}</a>对象。那是</p>
<pre><code>for job in jobs:
job.wait()
</code></pre>
<p>在<code>pool.close()</code>之前</p>
<p>但你可能在这里工作太辛苦了。你可以</p>
<pre><code>with multiprocessing.Pool() as pool:
for result in pool.starmap(function1,
(arg_1, arg_2, arg_3) for arg_1, arg_2 in sim_chr_tuples)):
accumulate_apply_async_result(result)
</code></pre>
<ul>
<li>池的默认值为<code>cpu_count()</code>,因此无需添加它</li>
<li><code>with</code>是否关闭/加入</li>
<li><code>starmap</code>等待您的结果</li>
</ul>
<p>一个完整的工作示例是</p>
<pre><code>import multiprocessing
result_list = []
def accumulate_apply_async_result(result):
result_list.append(result)
def function1(arg1, arg2, arg3):
return arg1, arg2, arg3
sim_chr_tuples = [(1,2), (3,4), (5,6), (7,8)]
arg_3 = "third arg"
if __name__ == "__main__":
with multiprocessing.Pool() as pool:
for result in pool.starmap(function1,
((arg_1, arg_2, arg_3)
for arg_1, arg_2 in sim_chr_tuples)):
accumulate_apply_async_result(result)
for r in result_list:
print(r)
</code></pre>