在Python中按名称终止进程

时间:2018-05-14 14:00:48

标签: python process multiprocessing

让我们假设我正在使用以下代码在python中启动一个进程:

from multiprocessing import Process
import time

def f(name):
     print ('hello ', name)

if __name__ == '__main__':
     p = Process(target=f,name = "Process-1", args=('bob',))
     p.start()

现在,我想终止这个过程。我可以这样做:

p.terminate()

但是,我希望按名称终止该过程。这可能吗?

1 个答案:

答案 0 :(得分:1)

为此,您需要在流程对象及其名称之间存储地图。使用辅助函数,它使您的代码更容易阅读(IMO):

def terminate(procname):
    return pmap[procname].terminate()

if __name__ == '__main__':
     pmap = {}
     pname = "process-1"
     p = Process(target=f,name = pname, args=('bob',))
     pmap[pname] = p
     p.start()

然后终止: terminate(pname)