Python并发.futures.ThreadPoolExecutor max_workers

标签 python threadpoolexecutor

我在网上找了好久。但没有用。请帮助或尝试给我一些如何实现这一目标的想法。

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

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

Changed in version 3.5: If max_worker is None or not give, it will default to the number of processors on the machine, multiplied by 5, assuming that ThreadPoolExecutor is often used to overlap I/O instead of CPU work and the number of workers should be higher than the number of workers for ProcessPoolExecutor.

如何更好地理解“max_workers”?

第一次提问,非常感谢。

最佳答案

max_worker,可以将其视为线程数。

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

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

关于Python并发.futures.ThreadPoolExecutor max_workers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385479/

相关文章:

java - 当多个线程尝试在JAVA中使用NIO附加内容时是否需要锁定文件?

python - 在同一个python函数中模拟两个具有不同返回值的redis hget

Python-Ctypes : OSError: exception: access violation writing 0xFFFFFFFFFA1C001B

python - 如何在特定键上合并这两个数据帧?

java - 在 mongo 中插入记录时出现重复键错误索引

java - Java Spring 中受控的 ThreadPoolExecutor

python - OWL2、SWRL : Query if item is in range of another item?

java - 如何最好地将二进制文件从 Android 发送到 PC 上的 Python 脚本?

java - 使用 ExecutorService 的时间限制任务

java - LinkedBlockingQueue unbounded 和 LinkedBlockingQueue with capacity 哪个更好