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

标签 python multiprocessing

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

最佳答案

看来您正在寻找 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)

关于python - 使用python多处理库进行进程识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011855/

相关文章:

python - Pycparser 评论失败

python - 如何更改 django manage.py 默认 shell

ruby-on-rails - 如何在并行多进程 block 中使用 ActiveRecord 事务?

python 多处理和核心数量

python - map() 和 pool.map() 的区别

python - KMeans 向量化实现更新集群质心。 Numpy 专业版

更改浏览器后 Python Selenium 保留元素

python - 列表字典中的数据框

Python multiprocessing.Pool 和参数 pickling

python - 导入和使用使用多处理的模块,而不会在 Windows 上导致无限循环