1 #coding=utf8 2 3 import threading 4 import time 5 import logging 6 7 logging.basicConfig( 8 level=logging.DEBUG, 9 format='[%(levelname)s]-(%(threadName)s)-%(message)s',10 )11 12 def worker():13 logging.debug('starting')14 #print 'I am worker:'15 time.sleep(2)16 logging.debug('ending')17 18 19 def my_service():20 logging.debug('starting')21 #print 'I am service:'22 time.sleep(1)23 logging.debug('ending')24 25 t = threading.Thread(name='worker-by leon',target=worker)26 t.setDaemon(True) #False阻塞主进程,True不阻塞27 t.start()28 t.join(3) #等待守护线程退出,join的时间大于线程睡眠时间,所以isAlive()的值为False29 30 31 d = threading.Thread(name='service-by leon', target=my_service)32 d.setDaemon(True)33 d.start()34 35 logging.debug(t.isAlive())36 d.join()37 #不显示ending因为worker守护线程结束之前,主线程或其他线程已经退出38 '''39 显示40 [DEBUG]-(worker-by leon)-starting41 [DEBUG]-(worker-by leon)-ending42 [DEBUG]-(MainThread)-False43 [DEBUG]-(service-by leon)-starting44 [DEBUG]-(service-by leon)-ending45 '''