在ProcessPoolExecutor中终止进程

我正在使用Python的ProcesspoolExecutor并行运行多个进程,并在它们完成时对它们进行处理。然后,我查看它们的输出,一旦其中至少一个给出令人满意的答案,我想退出程序。

但是,这是不可能的,因为调用pool.shutdown(wait=False)后,我必须等待pool中的所有活动任务完成才能退出脚本。

是否有办法杀死所有剩余的活跃孩子并退出? 另外,是否有更好的方法来阻止至少一个孩子返回我们正在等待的答案?

iCMS 回答:在ProcessPoolExecutor中终止进程

您正在做的事情还不清楚,但是执行者完全把我当作错误的工具。

multiprocessing.Pool似乎更合适,并且可以完全按照您的要求进行操作:您可以迭代imap_unordered(或apply_async并轮询结果),一旦拥有了您想要的东西只是在寻找terminate()池,然后join()

本文链接:https://www.f2er.com/2214099.html

大家都在问