在Python中,结束多进程可以通过以下几种方法:
1. 使用`multiprocessing`模块的`Process`对象的`terminate()`方法。
from multiprocessing import Processdef worker_process():子进程的任务代码pass创建子进程p = Process(target=worker_process)p.start()结束子进程p.terminate()p.join() 等待子进程结束
2. 使用信号(Signal)机制发送`SIGTERM`或`SIGINT`信号给进程。
import osimport signaldef worker_process():子进程的任务代码pass创建子进程p = Process(target=worker_process)p.start()发送信号结束子进程os.kill(p.pid, signal.SIGTERM)p.join() 等待子进程结束

3. 在子进程中设置一个标志位,当主线程需要结束子进程时,设置该标志位,子进程检测到标志位改变后退出。
from multiprocessing import Process, Valuedef worker_process(stop_flag):global stop_flag子进程的任务代码while not stop_flag.value:pass创建子进程stop_flag = Value('i', 0)p = Process(target=worker_process, args=(stop_flag,))p.start()结束子进程stop_flag.value = 1p.join() 等待子进程结束
4. 使用`multiprocessing`模块的`Queue`对象,在主线程中向子进程发送结束信号。
from multiprocessing import Process, Queuedef worker_process(q):子进程的任务代码while not q.empty():message = q.get()if message == 'stop':break创建子进程q = Queue()p = Process(target=worker_process, args=(q,))p.start()结束子进程q.put('stop')p.join() 等待子进程结束
