python实现主进(线)程退出时,所有子进(线)程也全部退出

       python多进程或多线程中,如果我们想实现当主进程或主线程退出,则所有的子进程或子线程也全部退出时,可以使用daemon参数。daemon参数为True时,表示设定该线程或进程为守护线程或守护进程。守护线程或进程的意义就在于,其生命依赖主进程或主线程,只有当主进程或主线程活动时,其才会活动,一旦主进程或主线程退出了,则其也会自动退出。

       这种情况特别会在当我们强制退出一个程序时,即我们手动杀死主进程时,我们往往希望并行的子进程也全部退出,这是,设置子进程为守护进程即可自动实现该功能。

       无论是多线程还是多进程,当我们创建一个线程或进程时,其都有参数daemon,默认为None,表示非守护进程或线程,当我们想设定其为守护进程或线程时,只需要在创建时设定daemon为True即可。如下所示。

from multiprocessing import Process

def f():
    pass

if __name__=='__main__':
    p=Process(target=f,daemon=True)
    p.start()
    p.join()

 

你可能感兴趣的:(python编程,多进程和多线程)