检查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 连接?

如何使用 Python 检查文件保存是不是完成?

是否有一种特定于“pathos”的方法来确定 CPU 内核的数量?

检查是不是安装了 Python 包

检查您的python代码是否在EC2的后台运行