#1、守护线程要注意的坑:下面代码只能打印出子线程开始,无法打印出子线程执行完毕,因为主线程在t.start()以后就结束了,
#而子线程要睡眠1秒,所以子线程守护线程随着主线程的结束而结束了。
from threading import Thread
import time
def func():
print('子线程开始')
time.sleep(1)
print('子线程执行完毕')
t = Thread(target=func)
t.setDaemon(True)
t.start()
# 子线程开始
#2、守护线程要注意的坑:关于join:
from threading import Thread
import time
def func():
print('子线程开始')
time.sleep(1)
print('子线程执行完毕')
t = Thread(target=func)
t.setDaemon(True)
t.start()
t1 = Thread(target=func)
t1.start()
t1.join() #主线程等待t1子线程的结束而结束,守护线程t等待主线程的结束而结束。
# 子线程开始
# 子线程开始
# 子线程执行完毕
# 子线程执行完毕
#3、守护线程:守护线程随着主线程的结束而结束。
from threading import Thread
def func():
while True:
print('&')
t = Thread(target=func)
t.setDaemon(True) #守护线程要写在开始的前面。
t.start()
for i in range(10):
print('*'*i)