让我们假设我正在使用以下代码在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()
但是,我希望按名称终止该过程。这可能吗?
答案 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)