<分区>
请给我解释一下这两个类有什么区别?
我注意到 Python 2 中存在 multiprocessing
模块。但是功能上呢?
<分区>
请给我解释一下这两个类有什么区别?
我注意到 Python 2 中存在 multiprocessing
模块。但是功能上呢?
最佳答案
如文档中所述,concurrent.futures.ProcessPoolExecutor
是 multiprocessing.Pool
的包装器。因此,multiprocessing
的相同限制适用(例如,对象需要是可腌制的)。
然而,concurrent.futures
旨在提供一个抽象接口(interface),可用于以方便的方式管理不同类型的异步任务。例如将异步策略从使用进程池更改为使用线程通常就像更改一两行代码一样简单(而不是需要自己编写所有代码)。抽象的另一个(相关)好处是 concurrent.futures
提供了一个单一的 API 来记住——你可以选择最适合任务的执行器。使用您的进程 IO 受限了吗?太棒了,使用 ThreadPoolExecutor
。您是否会因为全局解释器锁 (GIL) 而无法加快速度?没问题,使用 ProcessPoolExecutor
。
关于python - concurrent.futures.ProcessPoolExecutor 与 multiprocessing.pool.Pool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38311431/
相关文章:
python - `data_files` 与 `setup.py` + `pip` 的跨平台支持
python-3.x - 将 'flask_oauthlib.client' 更新/转换为 'authlib.flask.client' - 无需用户即可访问 Microsoft Graph v2
python - 如何在 Python 3.2 或更高版本中使用 'hex' 编码?
java - 调用 Java 对象的 wait() 中断线程同步
python - 函数矩阵、SymPy 和 SciPy 的数值积分