我们看官方介绍是这样的: Python学习交流群:330637182 意思就是说:这个属性为一个布尔值,表示是否为一个守护进程,且这个属性设置必须在线程的start方法开始之前调用。它的值继承自主线程,主线程的daemon为False且所有从主线程创建的线程都是daemon = False 。 下面一句说明了,python主程序只有在没有非守护线程的时候才会退出。 我在用多线程的时候和看这些介绍的时候2个疑惑:
Python学习交流群:330337182 从上图中我们可以看到,创建的线程输出的daemon是True。 可见问题2是说的不对的。 也就是说在主线程中用start_new_thread创建的线程其实是daemon=True的。这样就可以解释我们的主程序不会等待daemon程序执行完毕这个情况了。通过取消注释sleep语句,我们可以看到主程序执行完毕后其他线程也被销毁了。 那么我们接下来看看利用threading模块创建的程序执行情况如何? Python学习交流群:330637182 从上面的类方式创建的多线程我们可以清晰的看到,此种方式创建的为线程daemon=False。 且会阻塞住主线程的执行;解释就到这里了,不知道对有同样疑惑的你是否有所帮助。 喜欢python或者想学习python的朋友可以加QQ群:330637182!群内每天会更新python资料,还有大牛指导哟! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|