繁体   English   中英

为什么ThreadPoolExecutor max worker count默认是进程数的5倍?

[英]Why does ThreadPoolExecutor max worker count default to 5 times the number of processes?

ThreadPoolExecutor 文档中它说:

在 3.5 版更改:如果max_workersNone或未给出,则默认为机器上的处理器数量,乘以 5,假设ThreadPoolExecutor经常用于重叠 I/O 而不是 CPU 工作,并且工人的数量应该高于ProcessPoolExecutor的工作人员数量。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM