python程序退出策略
来源:互联网 发布:建筑cad软件下载 编辑:程序博客网 时间:2024/05/16 12:41
python程序退出策略:
其实跟java的jvm退出策略一致,只有在没有用户线程/进程,只有后台线程或进程的时候,才会退出,注意,主线程默认应该是用户线程
在主线程中新建子线程或者子进程默认都是用户线程或者进程,此时如果主线程提前结束,那么必须等待子线程或子进程退出,python程序才会退出。如果在新建子线程/子进程的时候设置成了守护的,那么当主线程结束的时候就会直接退出。
设置守护线程的方法:Thread.setDaemon(true)
设置守护进程的方法:Process.daemon = true
这里实践发现,子线程和子进程有一个区别:
对于创建子线程,如果从主线程传入了一个dict对象,那么当主线程结束的时候该dict对象仍然有效,尚未结束的子线程仍然可以使用该对象
但是对于子进程,如果从主线程传入了一个进程特有的dict对象,如下:
m = Manager()
d = m.dict()
那么当主线程结束的时候,d对象就无效了,此时尚未结束的子进程就无法使用该对象了,如果打印该对象可以发现如下警告:
<DictProxy object, typeid 'dict' at 0x9a6510; '__str__()' failed>
如果直接对d对象赋值,会直接抛出异常
但是对于子进程的情况,有另外一点需要注意,主线程退出的时候,主线程中创建的d无效了。但是如果在主线程中创建了另外一个子线程,那么当主线程退出的时候,如果子线程还没退出,那么主线程中创建的d对象仍然有效。应该是因为主线程和子线程是共用内存的,因为子线程未退出,所以这段内存仍然有效
0 0
- python程序退出策略
- python退出程序命令
- python-如何退出程序
- Python资料之退出程序
- python 退出程序sys.exit 的退出码
- python 获取命令行参数+退出程序
- Python的信号处理与程序退出
- Python的信号处理与程序退出
- 如何优雅地退出python程序
- Python学习笔记 --- 程序退出方法比较
- 程序退出
- 退出程序
- 退出程序
- 退出程序
- 程序退出
- 退出程序
- 退出程序
- 退出程序
- oj1974: C语言实验——输出字符串
- 492. Construct the Rectangle
- 数字解密(vector,队列方式)
- IOS-数据类型
- 雷声之锤
- python程序退出策略
- QT 读串口可用代码初步调试通过
- #ASM 翻译系列第二十二弹:ASM Internal ASM file number 8
- 全局替换安卓应用字体
- MySQL数据库基础(一)(启动-停止、登录-退出、语法规范及最基础操作)(持续更新中)
- eclipse svn 会报 文件夹 "" 已不存在
- #ASM 翻译系列第二十三弹:ASM Internal ASM files number 12 and 254
- UVA 1025 A Spy in the Metro城市里的间谍(dp)
- 托管C++嵌入C#