社区
C++ 语言
帖子详情
关于程序优雅退出的定义
Putin_yhc
2011-04-08 10:03:33
请教各位:
本人在编写程序的时候,习惯在析构函数中删除或关闭掉所有申请过的资源,认为这样做是一种优雅退出。
最近看了一位高手写的代码,程序在退出的时候直接return 0,大多数资源不释放,因为操作系统会为进程释放。这一做法颠覆了本人原来的想法,请教各位高手关于优雅退出的定义。
...全文
348
17
打赏
收藏
关于程序优雅退出的定义
请教各位: 本人在编写程序的时候,习惯在析构函数中删除或关闭掉所有申请过的资源,认为这样做是一种优雅退出。 最近看了一位高手写的代码,程序在退出的时候直接return 0,大多数资源不释放,因为操作系统会为进程释放。这一做法颠覆了本人原来的想法,请教各位高手关于优雅退出的定义。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JasonYak
2011-04-08
打赏
举报
回复
赞同lz的做法
lvv.me
2011-04-08
打赏
举报
回复
有些资源提前释放会出错.
这个是资源同步的问题.
这种情况只能让系统自己处理了.
不能一棍打死.
赵4老师
2011-04-08
打赏
举报
回复
检查是否内存泄漏的办法之一:
任务管理器 进程 查看 选择列 内存使用
任务管理器 进程 查看 选择列 虚拟内存大小
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上两个数值,再隔至少一小时,越长越好,比如一个月,再记录以上两个数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有内存泄漏!
赵4老师
2011-04-08
打赏
举报
回复
与其费神搞什么优雅的退出不如无论上次怎么意外退出留下多烂的摊子,下次重启时都能收拾好烂摊子开始工作。
因为意外退出是无法避免的。(比如CPU风扇不转了、电脑被砸了、电池没电或机房掉电、地震、海啸、核污染、地球毁灭……(^_^))
quwei197874
2011-04-08
打赏
举报
回复
楼主说的高手 return 0是释放进程,线程的安全方法,但不会new了不delete吧,怀疑楼主没看仔细.
pathuang68
2011-04-08
打赏
举报
回复
楼主的做法是对的。如果new/malloc了,没有delete/free,那就错了。在优雅之前,首先要正确才行!
辰岡墨竹
2011-04-08
打赏
举报
回复
系统的确是会释放资源,但是那是要等到程序退出以后。如果你的程序要运行几个小时甚至几天都不退出怎么办?运行时内存泄漏导致系统资源不足怎么办?
退出优雅了,并不代表程序能够不多占内存。
jackzhhuang
2011-04-08
打赏
举报
回复
是哪位高手啊?NND,最讨厌就是一些人写了多年的垃圾代码然后就被别人称作高手了。
垃圾代码写100年也是垃圾代码,写垃圾代码的人就是菜鸟!
direction917
2011-04-08
打赏
举报
回复
顶LZ,我的程序一般情况下,不释放资源都跑不起来(就别提系统为我清理资源了),感觉还是要养成好的习惯。
luciferisnotsatan
2011-04-08
打赏
举报
回复
你是只那高手 new,open后都没delete,close?
系统是会释放资源,但个人还是倾向于自己释放。至少查内存泄漏时,不会报出一堆问题。
RabbitLBJ
2011-04-08
打赏
举报
回复
个人感觉楼主是对的,你说的高人的做法只在特定的操作系统有用,万一在一个系统不释放资源的操作系统上,那样就悲剧 了
走走刀口
2011-04-08
打赏
举报
回复
WINDOWS的一般都会自动释放资源,只要关了程序都会释放,但最好要保持优良的作风,自己的事自己处理吧.
chengzhe
2011-04-08
打赏
举报
回复
程序退出后的确会释放资源 但是绝大多数程序是守护进程 不会被释放资源的的
Meteor_Code
2011-04-08
打赏
举报
回复
你所谓的高手写的是测试程序吧
商业软件他敢这么写????
binggou8993
2011-04-08
打赏
举报
回复
我个人认为优雅的推出从本质上讲并没有什么特殊的定义,一般意义上讲只要不会引起系统资源浪费、崩溃等异常现象的退出 都应该很优雅,不要关资源是由系统还是由程序本身收回
如C++中new出来了一块内存,一定要有一个delete与之对应
但在C#中new出来的对象,就不需要由程序员进行显示收回
总之一句话:不造成异常问题出现的退出就是优雅的
星爷是我哥
2011-04-08
打赏
举报
回复
你还没高手的水平就不要用高手的方法,很多方法是那些牛人已经知道底层原理。就直接退。
但我们还是用标准的做法比较好,代码一个人写一个人看。怎么都行,只要能编译过,要是写了别人也要看。
就写得规范点。方便别人。
zhangquangood
2011-04-08
打赏
举报
回复
这个问题,还是要对系统 了解的比较多,才能下定义
JAVA上百实例源码以及开源项目
Java非对称加密源
程序
代码实例,本例中使用RSA加密技术,
定义
加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
java
优雅
退出
_Netty
优雅
退出
机制和原理
1.进程的
优雅
退出
1.1.Kill -9 PID带来的问题在Linux上通常会通过kill -9 pid的方式强制将某个进程杀掉,这种方式简单高效,因此很多
程序
的停止脚本经常会选择使用kill-9 pid的方式。无论是Linux的Kill -9 pid还是...
1小时入门最新小
程序
授权登录注册功能开发,并把注册记录添加到数据库
新版微信小
程序
授权登录,
退出
,缓存,小
程序
个人中心的实现 如果把用户授权的信息存入Mysql/云开发的数据库,怎么实现呢? 授权登录对于不同的用户好像没有唯一的标识,是不是还得获取openid才行? 授权登录必须从...
Qt 控制台
程序
正常
退出
废话不多说,最近想写一个控制台
程序
,希望在执行完正常的代码后自动
退出
程序
,研究了很久很久,看了很多办法,都不得行,最后可行的办法记录于此,避免以后再次入坑。 首先,Qt
程序
正常
退出
的方式有如下几种: 1、...
chatgpt赋能python:Python
退出
代码:如何
优雅
地结束你的
程序
在编写
程序
时,一定要仔细考虑
退出
策略,并在
程序
编写的早期就将其
定义
好。正确的
退出
策略可以帮助你尽早地发现和解决问题,并提高代码的可维护性。在
定义
退出
代码时,最好使用常量来表示不同的
退出
状态。这样可以使...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章