目标:
1:掌握什么是守护线程
2:掌握 setDaemon 方法设置子线程守护主线程
3:知道pycharm软件按住结束程序按钮显示骷髅头是为什么?
一:什么是守护线程?
答:即子线程与主线程的一种约定!将子线程设置为守护主线程后,主线程结束运行后,守护线程(子线程)也会自动结束,反之,主线程没有结束运行,守护线程也不会结束运行。可以将主线程比作皇上,设置为守护线程的子线程比作妃子,皇上驾崩(主线程结束),则妃子们全部殉葬(全部守护线程全部结束执行)
答:如果不将子线程设置为守护线程,在主线程意外结束执行后,子线程还会继续执行,这样是缺乏逻辑的,因此要设置守护线程!
二:子线程设置为守护线程—— 创建的子线程对象.setDaemon(True)
功能:将子线程设置为守护线程,在主线程结束运行后(意外结束等),守护线程(子线程)也全部结束运行!
语法:创建的子线程对象 . setDaemon(True)
**
注意事项:
1:将子线程设置为守护线程要在 thread.start()之前设置!
2:如果不将子线程设置为守护线程,主线程意外结束后,子线程会继续执行,这样是不允许的!
3:什么情况下主程序执行完毕?就是在if name == ‘main‘:这行代码下面除了守护线程的代码外,其余代码均执行完毕即主程序执行结束!!
快速代码体验(没将子线程设置为守护线程的结果)
将子线程设置为守护线程后的结果截图
三:pycharm软件按住结束程序按钮显示骷髅头是为什么?
答:因为按下程序结束按钮,主程序结束,但因为多线程,故子线程没有结束执行,子线程还在继续执行,这是没有将子线程设置为守护线程的缘故!!!