博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
守护线程daemon
阅读量:7003 次
发布时间:2019-06-27

本文共 828 字,大约阅读时间需要 2 分钟。

如下代码:

from threading import Threadimport timedef func1(n):    time.sleep(10)    print(n)t = Thread(target=func1, args=(1,))t.start()print("主线程结束")

结果是:先打印 主线程结束,等十秒之后打印1

如下代码,加入守护线程:

from threading import Threadimport timedef func1(n):    time.sleep(10)    print(n)t = Thread(target=func1, args=(1,))t.daemon = Threadt.start()print("主线程结束")

结果是,只打印了 主线程结果,没打印子线程结果,也没等10秒,直接结束。

所以守护线程是随着主线程的结束而结束。

再看一个现象:

from threading import Threadimport timedef func1(n):    time.sleep(10)    print(n)def func2(n):    time.sleep(3)    print('子线程2', n*n)t = Thread(target=func1, args=(1,))t.daemon = Threadt.start()t2 = Thread(target=func2, args=(2,))t2.start()print("主线程结束")

结果是,先打印 主线程结束,等3秒之后打印 子线程2 4  然后没有等待子线程1就直接结束了。

所以,守护线程是随着主线程结束,然后等着其他子线程的结束而结束。

与守护进程对比:

守护进程:守护进程是随着主进程代码的结束而结束。

 

转载于:https://www.cnblogs.com/aaronthon/p/9850882.html

你可能感兴趣的文章
haproxy,能够实现将来自用户的80端口的http请求转发至后端8000上的server服务
查看>>
Windows Server 2008 如何去除“IE 增加的安全配置”
查看>>
Emeditor自动切换到单元格选择模式
查看>>
awk学习
查看>>
我的友情链接
查看>>
mongodb中的副本集搭建实践
查看>>
Javascript 实现形如Extjs中的“关闭并带回”
查看>>
resources.resx相关
查看>>
oracle中如何用提示符显示用户状态?
查看>>
CentOS转的服务器磁盘规划
查看>>
Oracle基础知识之物理存储结构
查看>>
我的友情链接
查看>>
哈佛结构与冯?诺伊曼结构区别
查看>>
耶鲁大学心态 ,送给正在奋斗的人 !
查看>>
磁盘空间耗尽(deleted)
查看>>
ansible任务的异步执行
查看>>
模拟计算器
查看>>
yum本地及网络仓库创建
查看>>
命令行编辑
查看>>
CentOS挂载ntfs文件系统
查看>>