繁体   English   中英

如何从 python 中的多处理模块获取当前正在运行的进程名称

[英]How to get currently running processes names from multiprocessing module in python

我知道在多线程中,有一个枚举方法可以用来获取所有当前正在运行的线程的名称。 但是对于多处理,非池类进程调用中的等价物是什么:

p1 = multiprocessing.Process(name='P1',
                    target=self.get_data,
                    args=(url,))

例如,如果我创建上面的流程,以及上面使用“P2”的另一个流程,那么所需的代码片段应该返回 P1 和 P2

您可以使用multiprocessing.active_children()返回multiprocessing.Process对象的列表。

例如:

for p in multiprocessing.active_children():
    print(f"child {p.name} is PID {p.pid}")

如果您没有使用Process()name=参数,则默认名称为,例如Process-1Process-2等。

请注意,这与threading.enumerate()具有相同的限制,因为它仅标识已使用.start()启动但尚未终止的进程。

另请注意 Python 文档中的这一点:

调用它具有“加入”任何已经完成的进程的副作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM