Python中子进程,守护进程与父进程的关系

          一般情况下,父进程会等子进程完全结束后再结束,但是守护进程是随着父进程代码结束而结束。而且子进程不是一定要依附父进程执行。那我们如何来证明这个结论呢,下面就用一段代码简单的代码来证明子进程,守护进程与父进程的关系:

#导入Process模块
from multiprocessing import Process
#导入time模块
import time
#创建一个func1方法作为子进程
def func1():
    #休眠0.5秒
    while True:
        time.sleep(0.5)
        print("我是func1守护线程,我还活着!!!")

def func2():
        print("我是func2,我启动了")
        # 休眠五秒
        time.sleep(5)
        print("我是func2,我结束了")

if __name__ ==  "__main__":
    #创建一个子进程func1
    P1 = Process(target=func1)
    #设置为守护进程
    P1.daemon = True
    P1.start()
    # 创建一个子进程func1
    P2 = Process(target=func2)
    P2.start()

    i = 0
    while i <=3:
        time.sleep(1)
        print("我是父进程")
        i += 1

执行后看打印结果:

Python中子进程,守护进程与父进程的关系_第1张图片

     很明显的可以看出,func1这个进程是应该一直执行才对,但当父进程代码执行完毕后,func1这个进程也就跟着结束了。但此时父进程并没有结束,一直等func2这个子进程执行完毕之后,父进程才结束运行。由此可见,守护进程是随着父进程代码的结束二结束的

你可能感兴趣的:(Python)