首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2: multiprocessing.dummy.Pool对multiprocessing.pool.ThreadPool

Python2: multiprocessing.dummy.Pool对multiprocessing.pool.ThreadPool
EN

Stack Overflow用户
提问于 2018-11-20 16:42:28
回答 1查看 2.5K关注 0票数 4

在python2中,multiprocessing.dummy.Poolmultiprocessing.pool.ThreadPool之间有什么区别吗?源代码似乎暗示着它们是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-20 16:46:46

它们是相同的(在Py2和Py3上);multiprocessing.dummy.Pool只是一个导入和调用multiprocessing.pool.ThreadPool的薄包装器。实际代码只是:

代码语言:javascript
复制
def Pool(processes=None, initializer=None, initargs=()):
    from multiprocessing.pool import ThreadPool
    return ThreadPool(processes, initializer, initargs)

一般来说,我更喜欢使用multiprocessing.dummy.Pool,这只是因为multiprocessing.dummy 正式记录的存在,其中multiprocessing.pool不是(这是内部实现细节)。

更新:从Python3.7开始,文档显式地记录了multiprocessing.pool.ThreadPool的存在,所以如果您确实在使用线程,并且永远不想切换,那么可以说ThreadPool更适合于显式地说明正在使用的线程。如果您可能要来回切换,那么如果只需从以下位置添加和删除.dummy就更容易了:

代码语言:javascript
复制
from multiprocessing import Pool  # And maybe other imports that need to switch for process vs. threads

因此,我建议在这种情况下继续使用Pool

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53397632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档