- 前言
- 实践
守护线程是在后台运行的线程,对程序的运行并不重要,你的程序在退出前不会等待守护线程的完成,此类线程的特点是,当程序中主线程及所有非守护线程执行结束时,未执行完毕的守护线程也会随之消亡(进行死亡状态),程序将结束运行。守护线程常用于以下场景:后台任务,垃圾回收,等待输入,长期运行的代码段等等。
实践我们这里写一个请求用户输入的代码,同时在后台运行一个计数器,每隔一秒加一,当用户输入字符串时,结束计数并退出整个程序
import threading
import time
def timer():
count = 0
while True:
time.sleep(1)
count += 1
print(count)
x = threading.Thread(target=timer, daemon=True)
x.start()
print(x.isDaemon()) # 判断该线程是否是守护线程
answer = input("Do you want to exit?n")
>>> True
>>> Do you want to exit?
>>> 1
>>> 2
>>> 3
>>> yes
可见当用户输入yes时,后台计数器也随即停止



