你如何用它的PID杀死多进程中的进程?

How do you kill a process in multi-processing with it's PID?

import multiprocessing as mp

def func():
  the code inside func
for _ in range(10)
  process = mp.Process(target=func)
  process.start()

所以在上面写的代码中,我如何在需要时杀死每个进程?

您可能应该将进程保存在由进程 ID(pid 属性)键入的 dict 中以便快速查找。然后你可以在 Process 实例上调用 terminate

import multiprocessing as mp

def func():
    ...

process_dict = {}
for _ in range(10):
    process = mp.Process(target=func)
    process.start()
    process_dict[process.pid] = process
...
# Kill a process given a pid:
# This also removes the key from the dictionary:
process = process_dict.pop(pid)
process.terminate()
...
# Wait for remaining processes to end:
for process in process_dict.values():
    process.join()

假设 pid 属于您创建的进程之一(否则 pop 操作将引发 KeyError 异常。

以上代码假定您 运行 在使用 fork 创建新进程的平台下(例如 Linux),因此您不需要放置创建的代码if __name__ == '__main__': 块中的新进程。但是你真的应该用平台标记你的问题。