python之守护线程

主线程要等到该进程内所有非守护线程(子线程)都死掉才算死掉,因为主线程的生命周期
代表了该进程的生命周期,该进程一定是要等到所有非守护的线程都干完活才应该死掉
 
可以简单理解为:
守护线程是要等待该进程内所有非守护的线程都运行完毕才死掉
 
实例一:
 
from threading import Thread
import os
import time

def task(x):
    print('%s is running' %x)
    time.sleep(3)
    print('%s is done' % x)

if __name__ == '__main__':
    t1=Thread(target=task,args=('守护线程',))
    t1.daemon=True # 必须放到p.start()之前
    t1.start()
    print('主')

执行结果:
     '''
     守护线程 is running
     主
     '''

  

实例二:

from threading import Thread
import time
def foo():
    print(123)
    time.sleep(10)
    print("end123")

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

if __name__ == '__main__':

    t1=Thread(target=foo)
    t2=Thread(target=bar)

    t1.daemon=True
    t1.start()
    t2.start()
    print("main-------")

执行结果如下:
    '''
    123
    456
    main-------
    end456

    '''

  

posted @ 2018-06-25 16:18  cyh追梦寻  阅读(72)  评论(0)    收藏  举报