使用python多处理库进行进程识别

时间:2015-08-14 13:55:10

标签: python multiprocessing

我正在使用python多处理库来创建新进程。父级需要识别子进程,以便它可以随时停止特定进程。我可以给一个进程命名,但是有可能获得一个进程处理程序,以后使用名称来阻止它吗?

1 个答案:

答案 0 :(得分:1)

您似乎正在terminate()实例上寻找multiprocessing.Process方法。

Process的一些方法的示例用法:

>>> import multiprocessing, time, signal
>>> p = multiprocessing.Process(target=time.sleep, args=(1000,))
>>> print(p, p.is_alive())
<Process(Process-1, initial)> False
>>> p.start()
>>> print(p, p.is_alive())
<Process(Process-1, started)> True
>>> p.terminate()
>>> time.sleep(0.1)
>>> print(p, p.is_alive())
<Process(Process-1, stopped[SIGTERM])> False
>>> p.exitcode == -signal.SIGTERM
True

如果您尝试按名称获取活动进程,则可以使用以下函数:

def get_process(name):
    return next((p for p in multiprocessing.active_children() if p.name == name), None)