【问题标题】:Python concurrent.futures.ThreadPoolExecutor max_workersPython concurrent.futures.ThreadPoolExecutor max_workers
【发布时间】:2018-11-20 02:45:03
【问题描述】:

我在网上搜索了很长时间。但是没有用。请帮助或尝试给我一些想法如何实现这一点。

当我使用python模块concurrent.futures.ThreadPoolExecutor(max_workers=None)时,我想知道max_workers多少个合适。

我已经阅读了官方文档。 我编码的时候还不知道合适的数量。

3.5版更改:如果max_worker为None或不给,默认为机器上的处理器数量,乘以5,假设ThreadPoolExecutor经常用于重叠I/O而不是CPU工作和数量工人数应高于 ProcessPoolExecutor 的工人数。

如何更好地理解“max_workers”?

第一次提问,非常感谢。

【问题讨论】:

  • 默认值为os.cpu_count() * 5,这应该是一个不错的值,但这当然可能取决于您的用例。
  • 这句话以某种方式回答了你的问题,不是吗?
  • @KlausD。谢谢你的建议。

标签: python threadpoolexecutor


【解决方案1】:

max_worker,可以作为线程数。

如果你想充分利用 CPU,你应该让它保持运行(而不是休眠)。

理想情况下,如果您将其设置为 None,则最多会有 (CPU number * 5) 个线程。平均而言,每个 CPU 有 5 个线程要调度。然后,如果其中一个进入睡眠状态,则会调度另一个线程。

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 2022-11-02
    • 2018-08-25
    • 2015-08-03
    • 2014-02-04
    • 2017-12-12
    • 2014-10-17
    • 2019-08-15
    • 2020-10-08
    相关资源
    最近更新 更多