【问题标题】:Why does ThreadPoolExecutor max worker count default to 5 times the number of processes?为什么ThreadPoolExecutor max worker count默认是进程数的5倍?
【发布时间】:2020-10-24 02:40:46
【问题描述】:

ThreadPoolExecutor documentation 中写道:

3.5版更改:如果 max_workersNone或未给定,则默认为机器上的处理器数,乘以5,假设ThreadPoolExecutor经常用于重叠I/O代替CPU 工作量和工作器数量应高于ProcessPoolExecutor 的工作器数量。

ThreadPoolExecutor 使用因子 5 有什么原因,在 python 中将其用于其他线程应用程序是否重要?

【问题讨论】:

    标签: python python-3.x multithreading


    【解决方案1】:

    ThreadPoolExecutor 使用因子 5 有什么原因,在 python 中将其用于其他线程应用程序是否重要?

    1. 很可能是因为它似乎是一个对典型应用程序来说足够好的数字。没有理论上的理由选择那个数字......或者实际上是任何用于 I/O 密集型应用程序的数字。

    2. 没有。事实上,将池大小作为调整参数可能是一个更好的主意。

    【讨论】:

      【解决方案2】:

      根据给定的规定,它可能只是被选为合理的默认值,即。 e.这些线程将主要等待 IO,而不是使 CPU 内核饱和。

      它可能适合也可能不适合您的应用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-23
        • 1970-01-01
        • 2015-09-06
        • 2011-10-11
        • 2017-06-29
        • 2015-03-18
        相关资源
        最近更新 更多