Python中多处理模块的线程池的正确数目是多少?

2024-04-27 03:47:39 发布

您现在位置:Python中文网/ 问答频道 /正文

由于这个伟大的问题,在这里how-to-use-threading-in-python,让我怀疑,线程池的数量是否对速度或内存使用有重要影响?

例如,线程池的数量应该乘以我的CPU核数吗? (我有两个CPU核心,所以我应该做4,8,12,。。线程池?)。在

提前谢谢你。在


Tags: to内存in核心数量usecpu线程
1条回答
网友
1楼 · 发布于 2024-04-27 03:47:39

在CPython中,ThreadPool(通常是threading)主要用于I/O绑定任务。 当您的测试停止增加时,池的吞吐量会一直增加。在

对于Python中CPU受限的任务(但不是numpy或其他在工作时释放GIL的扩展),最好使用multiprocessing.Pool。在这种情况下,我倾向于使用尽可能多的进程作为CPU的核心。这是使用processes=None创建Pool时的默认设置。如果您使用的进程多于核心,则池中的进程将为核心而斗争。在

相关问题 更多 >