【发布时间】:2018-10-18 17:40:25
【问题描述】:
如果我理解正确,ProcessPool 在 CPU 受限时使用它。所以如果我是四核,那是否意味着最有效的 max_workers 是 4?我怎么知道哪个对ThreadPool 最有效,因为如果我理解正确,应该在 I/O 绑定时使用它?
这是使用 python 的 concurrent.futures 的内置函数。
【问题讨论】:
-
对于 cpu 绑定的 ProcessPool,4 是最大值(之后它们只是竞争时间),但您可能会发现越少越快,具体取决于您机器上的其他负载。对于 I/O 绑定的 ThreadPool,它完全与您正在等待的事物的响应时间有关。例如,从磁盘读取(速度快,工作人员少)与远程网络抓取(速度较慢,工作人员多)相比。
标签: python multithreading concurrency multiprocessing