恐怖故事和童话故事-可靠代码实践1

本文探讨了设计稳定程序的策略,强调了响应性设计的重要性,包括加载提示与取消选项,以及界面先显示后更新内容的方法。同时,深入讨论了避免竞争条件和死锁的策略,提出减少共享状态、合理管理锁、使用Spinlock和锁层级结构等建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不要只顾着看标题,看看这里,我们要开始介绍这个危险的地球,程序的CRASH是一件屡见不鲜的事情。。数字我就不列举啦,从大家对蓝屏的记忆就知道我没有说谎。关于这个话题,特意收集了一些资料,写成这个文章。

首先,我们谈谈怎样设计可靠的组件。

1. 有反应的程序

恶劣的,让用户恼火的情况:

打开程序,等待Response,没有LOADING,没有任何的信息。用户这个时候可能会再打开一次程序,结果就恶性循环,程序不断在后台打开,但UI却没有显示。

打开程序,以前白色,据说是在LOADING中,尝试关闭。依旧没有任何反应。

设计可以再好点:

从设计开始,让程序做个有反应的程序。具体来说:
A. 打开的时候可以选择Loading,让用户知道还有多久完成。当然要注意一点,LOADING的界面要提供一个CANCEL按钮,让用户可以停止等待。

B. 先把界面和信息显示出来,然后再更新某部分的内容,如黄色框框那里。
 image

2. 竞争和死锁

A. 尽可能避免共享状态。

B. 注意管理和控制LOCKS,不要Lock任意的OBJECT,特别是Types,String类。

C. 保持锁在页的等级,特别是SPINLOCK. SPIN LOCK(http://msdn.microsoft.com/en-us/library/aa490179.aspx), 大致就是个多CUP环境下,高效率的LOCK.

D. 使用LOCK层级结构去避免死锁。(http://www.ddj.com/cpp/204801163;jsessionid=QFZ1KOWEBUIPTQE1GHRSKH4ATMY32JVN?pgno=3

转载于:https://www.cnblogs.com/ttaqt/archive/2009/10/09/1579741.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值