
接口设计
关中娃
尽可能使用图和代码---避免大量文字说明---it is my style
展开
-
多线程编程注意事项
(1)sleep主动暂停线程执行,并挂起该线程,不分配时间片,但是调度者需要检查睡眠时间是否到了。sleep(0)将该线程剩余时间片作废,请勿在主线程中使用,这会减慢消息的处理。 (2)如果消息队列中一条消息处理的时间超过100毫秒,建议另建线程处理。 (3)主线程用于处理用户输入,其生成的二级线程处理与用户输入不想关的任务。 (4)一般工作者线程处理一些后台运算业务,用户界面线程用于显示运原创 2016-12-06 11:04:21 · 2848 阅读 · 0 评论 -
关于软件设计中的分歧---生产者消费者
背景:甲提供位置数据,乙使用该数据进行导航。 分歧:乙认为甲不要提供重复的数据,原因是占用网络带宽及CPU。甲认为,提供重复的数据表示自己存在,没有死掉。 结果:甲坚持发送,乙不得不做处理。 结论:(1)各自保证自己的正确性,即假设对方犯错; (2)如果资源十分宝贵,则需要双方更高一级领导的协调;原创 2016-12-06 10:04:18 · 462 阅读 · 0 评论 -
关于软件设计中的分歧---资源清理
背景:软件退出,即关闭软件。 分歧:(1)甲认为软件退出,进程结束之后操作系统将其占用的资源进行清除,即将其占用的内存清除,将其打开的文件关闭,其内核使用对象递减,同时所有用户对象和GDI对 象均被撤销,所以不需要对各线程的退出做顺序化处理。 (2)乙认为应该严格控制软件退出时各模块的顺序,这样可以避免软件退出时发生的不可预期的错误。 结论:(原创 2016-12-06 10:28:14 · 435 阅读 · 0 评论 -
关于软件设计中的分歧---单例与全局变量
背景:C++对于系统的唯一实例的设计 分歧:(1)使用单例返回的指针,实现完全的面向对象的设计;(2)使用全局实例指针,代码看上去更简洁; 分析:对于C++编程来说,两者从实现软件功能的结果来看,没什么区别,技术细节这里也没有深入的研究。原创 2016-12-09 09:52:15 · 689 阅读 · 0 评论