本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
1、工作原理
守护线程一般是一个等待客户请求服务器,如果没有客户提出请求,它就在那里等。如果设定一个线程为守护线程,表示这个线程不重要,在进程退出的时候,不用等待这个线程退出。
2、创建实例
创建线程的时候可以指定线程组,线程名(默认为 Thread-N),是否守护线程(daemon)。在线程初始化也可以修线程名和 daemon 属性。
创建线程的daemon 默认为 False,这与 Java new Thread() 创建的线程是一样的,也就是说子线程没退出的话程序运行也不会结束。这与 Java 线程的行为是一样的。
importtime importatexit importthreading defplay_music(): foriinrange(3): print(threading.current_thread().name,i) time.sleep(1) atexit.register(lambda:print("programexit")) print("mainstart") thread=threading.Thread(target=play_music) thread.start() print("subthreadstarted") importtime importatexit importthreading defplay_music(): foriinrange(3): print(threading.current_thread().name,i) time.sleep(1) atexit.register(lambda:print("programexit")) print("mainstart") thread=threading.Thread(target=play_music) thread.start() print("subthreadstarted")
在我们了解了守护线程后,很多人对这种能够自动退出程序的线程非常感兴趣,使用这类线程能够让程序的退出变得灵活。