与Python中的多处理相比,concurrent.futures的优点是什么?

Dan*_*son 17 python multithreading multiprocessing concurrent.futures

我正在用Python编写应用程序,我需要同时运行一些任务.模块多处理提供类Process,concurrent.futures模块提供ProcessPoolExecutor类.两者似乎都使用多个进程来执行他们的任务,但他们的API却不同.我为什么要使用一个而不是另一个?

我知道在Python 3中添加了concurrent.futures,所以我猜它会更好?

iru*_*var 13

PEP涵盖了concurrent.futures的动机.

根据我的实际经验,concurrent.futures为长期运行的任务提交和监控情况提供了更方便的编程模型.我最近使用concurrent.futures编写的程序涉及在2-3小时窗口内监视传入文件的目录,在文件到达任务时对其进行翻译,提交等等.ProcessPoolExecutor返回的未来对象允许以方便的方式跟踪任务状态,提供中间状态报告等.