![](/img/trans.png)
[英]Why is ThreadPoolExecutor's default max_workers decided based on the number of CPUs?
[英]Why does ThreadPoolExecutor max worker count default to 5 times the number of processes?
在 3.5 版更改:如果
max_workers
为None
或未给出,则默认为机器上的处理器数量,乘以 5,假设ThreadPoolExecutor
经常用于重叠 I/O 而不是 CPU 工作,并且工人的数量应该高于ProcessPoolExecutor
的工作人员数量。
ThreadPoolExecutor 使用因子 5 是否有任何原因,将其用于 python 中的其他线程应用程序是否重要?
根据给定的规定,它可能只是被选为合理的默认值,即这些线程将主要等待 IO,而不是使 CPU 内核饱和。
它可能适合也可能不适合您的应用程序。
ThreadPoolExecutor 使用因子 5 是否有任何原因,将其用于 python 中的其他线程应用程序是否重要?
很可能是因为它似乎是一个对于典型应用程序来说足够好的数字。 理论上没有理由选择这个数字……或者实际上是任何用于 I/O 密集型应用程序的数字。
不。事实上,将池大小作为调整参数可能是一个更好的主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.