守护线程

守护线程:守护主线程
线程:代码的运行过程
主线程等子线程结束,一起回收资源
from threading import Thread
import time

def task(name):
    print('%s is running' %name)
    time.sleep(2)
    print('%s is done' %name)

if __name__ == '__main__':
    t=Thread(target=task,args=('线程1',))
    # t.daemon=True
    t.start()
    print('')
结果:
线程1 is running
主
线程1 is done

把注释 t.daemon=True解除掉的结果:
线程1 is running
主
举例
from threading import Thread
import time
def foo():
    print(123)
    time.sleep(1)
    print("end123")

def bar():
    print(456)
    time.sleep(3)
    print("end456")

t1=Thread(target=foo)
t2=Thread(target=bar)
t1.daemon=True
t1.start()
t2.start()
print("main-------")

结果:
123
456
main-------
end123    主线程等所有非守护线程都结束了,才结束,所以才能看到
end456
守护线程
from multiprocessing import Process
import time
def foo():
    print(123)
    time.sleep(1)
    print("end123")

def bar():
    print(456)
    time.sleep(3)
    print("end456")

if __name__ == '__main__':
    t1=Process(target=foo)
    t2=Process(target=bar)
    t1.daemon=True
    t1.start()
    t2.start()
    print("main-------")

结果:
main-------
456
end456

电脑运行效率不同,结果不同,有以下三种结果
    '''
    123
    main-------
    456
    end456
    '''

    '''
    main-------
    123
    456
    end456
    '''

    '''
    main-------
    456
    end456
    '''
进程
原文地址:https://www.cnblogs.com/zhouhao123/p/11224076.html