前言
在脚本运行过程中有一个主线程,如果主线程又创建一个子线程,则当主线程退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。如果想要主线程退出时,不管子线程是否完成都随主线程退出,则可以通过设置 Thread 对象的 daemon 属性为 True来达到这种效果。
验证思路
我们创建两个线程,一个线程定时结束,定义为t1;一个线程一直运行,手动停止,定义为t2。运行脚本,观察两个线程运行情况。将t2的daemon属性设置为True,再次观察程序运行结果。
从运行结果来看,当第一个线程结束时,线程t2还没有来得及打印第5个【*】就强制被线程t1终止,然后一起结束了程序。
程序验证结果是符合我们预期的,这种效果主要是用来区分主次进程的,当我们终止主进程时,其他进程必须无条件结束,这时就可以使用Daemon属性了,所有设置Daemon属性为True的进程都被定义为副进程,这在我们做界面开发,数据采集与处理上是非常有用的。