python多处理与多个cpu?

时间:2017-11-07 01:42:51

标签: python multiprocessing

我的MOBO上有两个Xeon处理器(每个处理器有8个核心,总​​共32个线程),我使用multiprocessing.Pool(处理器= 30)运行了一个简单的代码。当我使用htop进行监控时,我发现只使用了12个线程。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

当新请求提交到池时,

Pool()可以为用户调用提供指定数量的进程,如果池未满,则创建新进程以执行请求;但是,如果池中的进程数已达到指定的最大值,则请求将等待池中的进程创建新进程。
对于支持多线程的模型,建议的线程数至少为1:1。这允许一些线程做IO 如果您的流程没有使用完整的核心,它就不会占用另一个核心。