在Python的多进程模块中,从进程池获取工作进程数

27

我正在尝试找到一种从Python的multiprocessing.Pool类实例中直接获取进程数的方法。是否有办法实现?

文档中没有显示相关信息。

谢谢

1个回答

34

您可以使用_processes属性:

>>> import multiprocessing
>>> pool = multiprocessing.Pool()
>>> pool._processes
8
返回值对于 multiprocessing.cpu_count() 是相同的,除非在创建 Pool 对象时指定了进程数。
>>> multiprocessing.cpu_count()
8

这真的很明显...我不知道为什么我认为带下划线前缀的属性是不可访问的..谢谢 - gc5
5
无论如何,使用它可能会在将来破坏我的代码吗?我的意思是,如果他们放置一个没有getter方法的私有属性,那么它可能不是最安全的解决方案? - gc5
如果您在Python 3.x上开发系统并保持该版本,那么您就没问题了。当然,如果您升级了Python版本,您应该首先检查Python更改日志,尽管我怀疑Python SDK的这个相对稳定的部分不会有任何变化(但这只是我的个人意见)。简而言之,在升级Python版本之前,请始终首先检查更改日志。 - pedjjj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接