标签:threading int 资源 stop 守护线程 __name__ enumerate 线程 产生
无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。
重点:守护线程守护的的是进程的运行周期,只要程序中所有非守护线程都结束后,守护线程才结束
from threading import Thread
import time
def sayhi(name):
time.sleep(2)
print('%s say hello' %name)
if __name__ == '__main__':
t=Thread(target=sayhi,args=('nick',))
t.setDaemon(True) #必须在t.start()之前设置
t.start()
print('主线程')
print(t.is_alive())
主线程
True
from threading import Thread,enumerate,currentThread
import time
def task():
print('守护线程开始')
print(currentThread())
time.sleep(20)
print('守护线程结束')
def task2():
print('子线程 start')
time.sleep(5)
print(enumerate())
print('子线程 end')
if __name__ == '__main__':
t1 = Thread(target=task)
t2 = Thread(target=task2)
t1.daemon = True
t2.start()
t1.start()
print('主')
子线程 start
守护线程开始
主
<Thread(Thread-1, started daemon 4360)>
[<_MainThread(MainThread, stopped 15104)>, <Thread(Thread-2, started 15160)>, <Thread(Thread-1, started daemon 4360)>]
子线程 end
标签:threading int 资源 stop 守护线程 __name__ enumerate 线程 产生
原文地址:https://www.cnblogs.com/xichenHome/p/11569096.html