- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 Effective C++ 笔记
条款12:尽量使用类的初始化列表而不是构造函数对类的成员变量初始化。 这个主要优点三个:1.如果有继承关系,使用初始化列表可能少调用一次类成员变量的构造函数,直接调用拷贝构造函数。 2.可以满足const和引用成员初始化的要求。(同时可以有一定扩展性,可以适应原来的非const变成const
2013-08-09 13:45:28 1891
原创 异常机制
把错误变成正常,不至于程序彻底崩溃,甚至用户体会不到错误内建的异常机制都是沿着函数调用栈的函数调用逆向搜索,直到遇到异常处理代码为止。一般在这个异常处理代码的搜索过程中逐级完成栈卷回(stack unwinding)。一般而言,在处理异常的时候,抛出异常的块中的局部存储不存在了,但是在块中new出来的对象,该内存不会释放。不能不处理异常,如果找不到匹配的catc
2013-08-08 16:50:58 643
原创 随笔(2013.8)
2013/8/81.session的作用:一直以为已连接套接字的句柄就可以表示一次会话了,但是在一个链接的套接字上可能存在很多次的会话,例如一个问答,如果没有session,而且双方都是异步设计的,那么可能第一个会话的请求回来第二次会话的应答。2.对于线程的设计:要找到耗费系统处理时间的地方,能使用单线程就不要使用多线程。同样一个问题,接收网络信息、解析消息、处理消息,可以设计多个线程处理
2013-08-08 15:33:11 723
原创 命令池的实现
图1 命令池类图一、首先要清楚命令池要实现的功能 学习代码为了帮助分析,大概总结了下,最基本的功能有如下几个:开启执行线程,设置命令回调接口,记录线程对命令的执行时间,命令执行的调度算法。类图就是按照这几个主要的功能来实现的,CThreadRunner类为记录线程运行时间的类。二、对于设计的一点疑问 为什么CSchedule使用继承,而CC
2013-08-05 10:37:37 1174
原创 关于OO的一点理解
对于面向对象程序设计,可能一个人有一个人的理解,就连林锐博士也说自己无法解释什么是“面向对象”。凡事都有个过程,理解面向对象也是。目前自己写过的代码也就只有一万行左右,既然是有个过程,那么就早点开始这个过程,理解肯定是有偏颇的,甚至错误的,就当写给未来的自己。面向对象要解决什么问题? 解决最大的我觉得就是应对需求的改变。如果需求确定,大家要的都一样,那么面向对象就
2013-08-01 11:02:14 697
原创 完成端口
完成端口的最大优点在于其管理海量连接时的处理效率,通过操作系统内核的相关机制完成IO处理的高效率。注意:完成端口的优点在于管理连接量的巨大,而不是传输数据量的巨大。在这种场合最适合用完成端口:连接量巨大,且每个连接上收发的数据包容易比较小,通常只有几K甚至不到1K的字节。 完成端口基于监视线程+消息队列,只不过是内核实现的。引入完成端口,则通过在内核开启线程,在内核级别对
2013-08-01 10:58:15 1480
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人