【问题标题】:Get number of workers from process Pool in python multiprocessing module从 python 多处理模块中的进程池中获取工作人员的数量
【发布时间】:2013-12-19 16:13:03
【问题描述】:

我正在想办法直接从 Python 中的 multiprocessing.Pool 类的实例中获取进程数。有没有办法做到这一点?

文档没有显示任何相关内容。

谢谢

【问题讨论】:

    标签: python multiprocessing threadpool


    【解决方案1】:

    你可以使用_processes属性:

    >>> import multiprocessing
    >>> pool = multiprocessing.Pool()
    >>> pool._processes
    8
    

    multiprocessing.cpu_count() 的返回值相同,除非您在创建 Pool 对象时指定了进程计数。

    >>> multiprocessing.cpu_count()
    8
    

    【讨论】:

    • 这真的很明显..我不知道为什么我认为下划线前缀属性不可访问..谢谢
    • 无论如何,将来使用它可能会破坏我的代码?我的意思是,stackoverflow.com/a/14671542/41977 如果他们放置一个没有 getter 方法的私有属性,它可能不是最安全的解决方案?
    • 如果你在 Python 3.x 上开发你的系统并保持在那个版本上,你会没事的。当然,如果你升级了运行代码的 Python 版本,你应该先查看 Python 更新日志,尽管我怀疑 Python SDK 这个相对健壮的部分是否会发生变化(但这只是我个人的看法)。 tl;dr:在升级 Python 版本之前,请务必先检查更改日志。
    猜你喜欢
    • 2014-03-27
    • 2014-05-31
    • 2020-05-02
    • 1970-01-01
    • 2015-07-30
    • 2014-03-23
    • 2022-01-08
    • 2014-11-22
    • 2018-04-11
    相关资源
    最近更新 更多