自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 网络服务leader-follower线程池模式

今天主要给大家分享一下基于非阻塞IO的TCP网络服务程序的线程池模式。TCP应用程序有过网络服务通信经验的人都知道,无论服务端怎么架构,始终要通过socket创建,端口绑定,端口监听,然后进入accept的阶段。伪代码:int socksvr=socket(para,para,para);bind(socksvr,addr,sizeof(addr));listen(so

2016-09-27 22:37:26 947 1

原创 从c++到c

出来工作,就一直使用C++,用C++也写过不少的东西,做过网络服务器,做过游戏,也用MFC或者QT做过客户端,研究过SLT部分源码,因此对于C++这个语言来说,谦虚点的说法,就是熟练掌握C++,不谦虚的说法就是精通C++。        上一个月研究了一套开源的memcached源码和粗略的看了一些libevent源码,在研究这两个开源的代码的过程中,就发现很多开源的比较底层一点的东西都是

2016-09-27 22:24:50 646

原创 堆实际应用

堆,作为程序语言世界里面常用的一种数据结构,在实际工作中应用的还是比较多,但是对于刚入门的小白,往往都很难理解堆,对于堆的概念可能也只是来自于大学课本数据结构教材里面的堆排序,但是很多人可能都不理解堆排序,因为它和我们常见的冒泡排序,选择排序,快速排序相比,要复杂很多。         为什么堆排序要比其他排序难一些呢,因为其他排序可以直接通过数组这种简单的数据结构来进行实现,比较直观。但是堆

2016-09-27 22:19:04 521

原创 "&"符号你知道多少

对于学习c/c++的人来说,都应该知道这个符号的,如果你连这个运算符都不知道,可以说你压根就没有学过c/c++,虽然这个符号大家都知道是按位与运算符,但是很多时候看到别人的代码里面有这个运算的时候,就感觉别人的代码好难懂,好难理解。不信就来几段实际的代码看看。int count(unsignedchar n){    intsum=0;    while(n)    {

2016-09-27 22:12:48 870

原创 c++实现c#委托机制

看了两本关于设计模式的书,一本是用的java语言描写的《设计模式之禅》,另一本是用C#语言描述的《大话设计模式》,两本都不是我常用的C/C++,不过C++是面向对象的语言,当然你也可以用它编写面向过程的程序。       既然C++是面向对象的语言,那么所有的两本书讲的所有的设计模式都应该能够实现,只是实现的具体方法不一样而已,比如一个单例模式,用java实现的方法如下:    class

2012-11-13 21:40:40 771

原创 模板,函数对象,泛型结合在一起的实例代码

小小的代码里面包含了很多知识点:#include using namespace std; templateclass classbinder{         typedef void (T::*PFUN)();         T* _m_object;         PFUN _m_fun;public:         classbinder(

2012-10-08 19:18:43 624 1

原创 绝对经典的程序

很久都没有写过技术方面的文章了,最近觉得还是把自己觉得不错的东西写出来供大家分享。在一道面试题中,看到题目要求不使用比较运算符,不实用if...else,不使用switch,不使用for,不使用三目运算符,不使用系统函数实现得到两个数中较大的一个数。刚开始一看这还不简单,结果仔细一想,确实这个题不简单,首先能用的东西太少了。然后开始思考数学里面的那些公式,最后想到了一个表达式:in

2012-07-22 18:02:35 414

原创 VC疑惑

今天看人家的源代码(一个大型系统),当然源代码是可以运行的,发现了在CWnd的子类里面的Create函数里面调用了一个CWnd::CreateEx(NULL,…),发现了窗口类名居然传递了一个NULL,想到看过的CWnd源代码,想起了CWnd::CreateEx()函数里面调用了SDK的函数CreateWindow,这样说明了CreateWindow函数接受了一个NULL,觉得有点奇怪,然后打开了

2012-03-20 18:06:32 446

原创 C++构造函数和模拟AfxGetApp()

C++中构造函数是一个比较特殊的函数,今天就从C++继承的角度来讲讲构造函数的一些知识。大家都知道C++子类在构造对象的时候会去调用构造函数,根据构造对象传递参数的形式调用相应的构造函数,而构造函数首先会去调用基类的构造函数,那么具体调用基类的哪一个构造函数呢,如果是在子类的构造函数中没有具体指明的情况下,会去调用基类的构造函数,就是不传递参数的构造函数,这里不传递参数的构造函数就有两种情况了

2012-03-19 11:16:57 1046

原创 浅谈void及void指针

在编程的过程中,大家都很熟悉void,但是对于void指针恐怕就没有那么熟悉吧,今天我在这里进行一些浅谈,希望对各位朋友有一定的帮助。首先我们要知道数据类型,什么是数据类型,可以理解为一种数据的结构,每种数据类型都有相应的数据结构,既然是结构那么就有相应的结构信息,包括在内存中占有多少字节等等的东西。内存是连续的,我们通常都说电脑的内存是2G,那么内存是在电脑出厂或者内存条出厂的时候就制定

2012-03-18 12:50:14 4757 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除