检查processpool是否完成了对python3的处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查processpool是否完成了对python3的处理相关的知识,希望对你有一定的参考价值。
如何检查进程池中是否完成了进程?我只需要在完成进程池后执行其余的代码就有办法吗?
executornan = concurrent.futures.ProcessPoolExecutor(20)
for l, ch in enumerate(chunks):
print("CHUNK NUMBEr", l)
print("CHUNKS", ch)
futuresnan = [executornan.submit(locals()[configid + 5].ftptester, ch)]
答案
你应该使用shutdown:
for l, ch in enumerate(chunks):
print("CHUNK NUMBEr", l)
print("CHUNKS", ch)
futuresnan = [executornan.submit(locals()[configid + 5].ftptester, ch)]
executornan.shutdown(wait=True)
这将等到所有任务完成后再关闭池。
注意:如果您不需要在函数外声明池,也可以使用with
:
with concurrent.futures.ProcessPoolExecutor(20) as executornan:
for l, ch in enumerate(chunks):
print("CHUNK NUMBEr", l)
print("CHUNKS", ch)
futuresnan = [executornan.submit(locals()[configid + 5].ftptester, ch)]
当您点击这部分代码,提交任务,然后等待所有这些任务完成然后退出with
结构时,这将创建一个新池。
以上是关于检查processpool是否完成了对python3的处理的主要内容,如果未能解决你的问题,请参考以下文章
使用“pathos.pools.ProcessPool”锁定的规范方法是啥?
如何处理 ProcessPool 中的 SQLAlchemy 连接?