我正在网上搜索很长时间。但是没用。请帮助或尝试给我一些实现此目标的想法。
当我使用python模块concurrent.futures.ThreadPoolExecutor(max_workers=None)
时,我想知道max_workers
有多少合适的数量。
我已经阅读了官方文件。 我编码时仍然不知道合适的数量。
版本3.5中的更改:如果max_worker为None或不提供,它将默认为计算机上的处理器数量乘以5,假设ThreadPoolExecutor通常用于重叠I / O而不是CPU工作和数量的工人人数应高于ProcessPoolExecutor的工人人数。
如何更好地理解“ max_workers”?
第一次问问题,非常感谢。
答案 0 :(得分:1)
max_worker
,您可以将其用作线程号。
如果要充分利用CPU,则应保持其运行(而不是休眠)。
理想情况下,如果将其设置为None,则最多将有(CPU number * 5)个线程。平均而言,echo CPU有5个线程要调度。然后,如果其中一个进入睡眠状态,则会安排另一个线程。