自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【一类你不得不面对的服务端-linux】C语言实现支持yield/resume的插件式网络框架demo...

说明:简单做了一个服务端框架demo,粗略实现一下自己的想法,和协程(coroutine)的理念基本相同,有这么几个核心设计要素是我希望通过代码展现出来的:1,程序性质是一个服务端框架,需要用户编写请求的解析/反序列化函数,之后请求将经过若干预先编写的插件进行处理。(PS:个人精力的关系,插件直接与源码一起编译,而不是.so)。2,框架支持插件异步化处理,即某个插件在处理某个请求时可以y...

2013-05-18 11:17:00 183

转载 【原创】 [ 探索epoll的内置Leader-Follower支持以及线程安全问题, epoll可以更高效! ]...

最近在探索借助epoll做为reactor,设计高效的服务端的方法.常见的基于epoll的编程方式主要为单线程的事件循环,用于一些非阻塞的业务逻辑开发是比较高效并且简单易懂的.但实际开发业务的时候,往往面临着查数据库,访问磁盘,通过网络访问其他主机的需求,耗时往往较长,所以单线程的epoll并不能轻松的适用,往往需要做一些额外的设计与构思才能得到解决....

2013-02-19 11:33:00 130

转载 【Jabberd2源码剖析系列 nad】

nad是jabberd2自创的xml存储结构, 它基于expat xml库实现, 提供了更加快捷方便操作xml文档的方法.nad的意思是not a dom, 意思就是使用自定义结构存储xml dom, 比dom更快更方便.先读一下nad.h中的说明:/** @file util/nad.h * @brief Not A DOM * @author Jer...

2012-11-20 16:06:00 166

转载 【Jabberd2源码剖析系列 xhash】

xhash是jabberd2的哈希表, 并提供了迭代器用于遍历xhash.解释一下结构体的命名,xht_struct意思是x hash tasble,xhn_struct意思是x hash node, 这样方便理解记忆.xhn_struct的成员变量顾名思义, 不赘述.xht_struct中, p是内存池, 负责node的分配等, zen是桶数组, free_lis...

2012-11-20 14:21:00 176

转载 【Jabberd2源码剖析系列 util (不包括nad, xhash, xdata, jid, config, stanza)】

xmpp使用util/pool作为内存池, 相比于常见的内存池模式, xmpp的pool使用了一种个性的设计: 一个pool为一个对象而生, 而对象随着pool的消亡而释放, 一个程序里可能有成百数千的pool, 每个pool管理一个小小的对象, 并且分配过的内存是不能重用的, 也没必要一点点的释放, 把整个pool销毁是唯一的释放方法.1, 数据结构:pool_clean...

2012-11-19 17:43:00 141

转载 【Jabberd2源码剖析系列 mio】

  mio是一个xmpp的I/O复用事件库, 对开发者提供透明API进行开发, 而在API之下允许灵活使用不同的I/O复用作为底层实现.  mio采用了大量的宏替换, 实现了 开发者API -> 底层实现 的解耦, 该解耦逻辑发生在预编译阶段, 而不是我们习惯的运行阶段解耦技巧.  mio暴露给用户的API是固定不变的, 这些API的声明存在于mio.h中, 如下:  ...

2012-11-19 16:16:00 158

空空如也

空空如也

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

TA关注的人

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