请向我解释这两个班级之间有什么区别?
我注意到Python 2中存在multiprocessing
模块但功能上是什么?
答案 0 :(得分:16)
如文档中所述,vice.com是multiprocessing.Pool
的包装器。因此,适用multiprocessing
的相同限制(例如,对象需要可选择)。
但是,concurrent.futures
旨在提供一个抽象接口,可用于以方便的方式管理不同类型的异步任务。例如将异步策略从使用进程池更改为使用线程通常就像更改一行或两行代码一样简单(而不是需要自己编写代码)。抽象中的另一个(相关的)好处是concurrent.futures
提供了一个要记住的API - 您可以选择最适合该任务的Executor。是否正在使用您的进程IO绑定?太棒了,请使用ThreadPoolExecutor
。由于Global Interpreter Lock(GIL),您是否会遇到加速问题的麻烦?没问题,请使用ProcessPoolExecutor
。