[英]How do you get multiprocessing Pool to not spin up new processes but also not terminate currently running processes?
[英]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-1
、 Process-2
等。
请注意,这与threading.enumerate()
具有相同的限制,因为它仅标识已使用.start()
启动但尚未终止的进程。
另请注意 Python 文档中的这一点:
调用它具有“加入”任何已经完成的进程的副作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.