擅长:python、mysql、java
<p>要列出由Pool()-实例启动的进程(如果我理解正确,这就是您的意思),请使用Pool.\u Pool-list。它包含进程的实例。</p>
<p>但是,它不是文档化接口的一部分,因此,实际上不应该使用它。
但是…似乎有点不太可能像那样改变。我的意思是,他们应该停止在池中有一个进程的内部列表吗?不叫那个泳池?
而且,至少没有get进程方法,这让我很恼火。或者别的什么。
而处理由于名称更改而导致的中断应该没那么困难。</p>
<p>但还是要冒风险使用:</p>
<pre><code>from multiprocessing import pool
# Have to run in main
if __name__ == '__main__':
# Create 3 worker processes
_my_pool = pool.Pool(3)
# Loop, terminate, and remove from the process list
# Use a copy [:] of the list to remove items correctly
for _curr_process in _my_pool._pool[:]:
print("Terminating process "+ str(_curr_process.pid))
_curr_process.terminate()
_my_pool._pool.remove(_curr_process)
# If you call _repopulate, the pool will again contain 3 worker processes.
_my_pool._repopulate_pool()
for _curr_process in _my_pool._pool[:]:
print("After repopulation "+ str(_curr_process.pid))
</code></pre>
<p>该示例创建一个池并手动终止所有进程。</p>
<p>重要的是,您要记住从池中删除您自己终止的进程i you want pool()继续正常工作。</p>
<p>_my_pool._repopulate将工作进程的数量再次增加到3个,不需要回答问题,但提供了一点幕后见解。</p>