守护线程(Python)

import time
from threading import Thread

def son():

    while True:
        print('in son')
        time.sleep(1)

def son2():

    for i in range(3):
        print('in son2 ****')
        time.sleep(1)

# flag a   0s
t = Thread(target=son)
t.daemon = True
t.start()
Thread(target=son2).start()
# flag b

# 主线程会等待子线程结束之后才结束
# 为什么? # 主线程结束进程就会结束
# 守护线程随着主线程的结束而结束
# 守护线程会在主线程的代码结束之后继续守护其他子线程么? 会的

# 守护进程 会随着主进程的代码结束而结束
    # 如果主进程代码结束之后还有其他子进程在运行,守护进程不守护
# 守护线程 随着主线程的结束而结束
    # 如果主线程代码结束之后还有其他子线程在运行,守护线程也守护

# 为什么?
    # 守护进程和守护线程的结束原理不同
    # 守护进程需要主进程来回收资源
    # 守护线程是随着进程的结束才结束的
        # 其他子线程-->主线程结束-->主进程结束-->整个进程中所有的资源都被回收-->守护线程也会被回收

# 进程是资源分配单位
# 子进程都需要它的父进程来回收资源
# 线程是进程中的资源
# 所有的线程都会随着进程的结束而被回收的
原文地址:https://www.cnblogs.com/sun-10387834/p/12876292.html