【问题标题】:Python pool map and choosing number of processesPython池映射和选择进程数
【发布时间】:2014-09-23 08:17:18
【问题描述】:

在设置进程数时,我很想看看我的机器上实际可以使用多少个线程 - 我如何找到这个?有没有办法确定我可用的线程数?

【问题讨论】:

    标签: python map multiprocessing reduce


    【解决方案1】:

    你想知道CPU count?

    根据docs,当你启动一个池并且不指定进程数时,默认数字是系统上的cpu数:

    processes 是要使用的工作进程数。如果进程是None,则使用cpu_count() 返回的数字。如果 initializer 不是 None 那么每个工作进程在启动时都会调用 initializer(*initargs)。

    【讨论】:

    • 多处理不会创建线程,它会启动进程:stackoverflow.com/questions/200469/… 无论如何,您可以拥有比 CPU 数量更多的进程/线程,但出于性能原因,您通常不希望这样做。跨度>
    • “每个 CPU 一个线程/进程”规则的例外情况是,如果您在大多数线程/进程中执行 I/O 密集型工作。在这种情况下,启动比 CPU 更多的线程是有意义的,因为当您的线程阻塞 I/O 时,它们不会使用任何 CPU 周期。
    • @dano,我同意,但通常使用 pool.map 你正在执行同质任务。
    猜你喜欢
    • 2018-01-28
    • 2017-04-09
    • 2012-04-06
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多