在ThreadPoolExecutor文档中,它说:
在 3.5 版更改: 如果
max_workers
None
或未给出,它将默认为计算机上的处理器数乘以 5,假设ThreadPoolExecutor
通常用于重叠 I/O 而不是 CPU 工作,并且工作器数量应高于ProcessPoolExecutor
的工作器数量。
ThreadPoolExecutor 使用因子 5 有什么原因吗?将其用于 python 中的其他线程应用程序是否重要?
ThreadPoolExecutor 使用因子 5 有什么原因吗?在 python 中将其用于其他线程应用程序是否重要?
-
很可能是因为它似乎是一个足以满足典型应用程序使用的数字。 没有理论上的理由选择这个数字......或者实际上是 I/O 密集型应用程序的任何数字。
-
不。 事实上,将池大小作为优化参数可能是一个更好的主意。
它可能只是被选为合理的默认值,给出的规定,即这些线程将主要等待 IO,而不是饱和 CPU 内核。
它可能适合也可能不适合您的应用程序。