守护线程
守护线程:守护主线程
线程:代码的运行过程
主线程等子线程结束,一起回收资源
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 '''