- 博客(8)
- 资源 (8)
- 收藏
- 关注
原创 异步通讯中使用纤程(Fiber/UserSpaceThread)
在异步通讯中,一般使用一个线程来select/poll/epoll,收到信号后,解码消息头,或者整个消息,然后将相应的fd交给其他线程处理。这看上去的确是个很好的办法,但是,如果使用Tcp,并且遇到一个复杂的派发过程:收到的消息大小未知,而只能使用序列化方法解码消息然后根据其内容进行派发。这种情况的特征是:在大多数情况下,都可以无阻塞地读取并解码整条消息,但也有极小的可能在某条消息上阻塞(消息
2008-11-15 15:36:00 5714 8
异步通讯中使用纤程(Fiber/UserSpaceThread)
在异步通讯中,一般使用一个线程来select/poll/epoll,收到信号后,解码消息头,或者整个消息,然后将相应的fd交给其他线程处理。这看上去的确是个很好的办法,但是,如果使用Tcp,并且遇到一个复杂的派发过程:收到的消息大小未知,而只能使用序列化方法解码消息然后根据其内容进行派发。这种情况的特征是:在大多数情况下,都可以无阻塞地读取并解码整条消息,但也有极小的可能在某条消息上阻塞(消息不...
2008-11-15 15:36:00 110
原创 持久化的多键映射,使用BerkeleyDB
如前介绍,相当于 std::map >,但接口也不完全相同,这里只贴代码: /* vim: set tabstop=4 : */#ifndef __febird_bdb_kmapdset_h__ #define __febird_bdb_kmapdset_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pra
2008-11-07 18:29:00 1926
持久化的多键映射,使用BerkeleyDB
项目地址:http://code.google.com/p/febird 如前介绍,相当于 std::map<Key1,std::map<Key2,Data> >,但接口也不完全相同,这里只贴代码: /* vim: set tabstop=4 : */#ifndef __febird_bdb_kmapdset_h__ #define __febi...
2008-11-07 18:29:00 96
原创 持久化的 map ,使用 BerkeleyDB
使用前面介绍的序列化框架,可以非常简单地将Bekeley DB作为存储层,实现一个易于使用的,强类型的,持久化的map。 这个设计的的基本原则就是:模板作为一个薄的、类型安全的包装层,实现层的代码可以多个模板实例来公用,这样不但加快了编译时间,也减小了生成的代码尺寸。这个实现相当于std::map,但接口上也不完全相同,主要是基于易实现和性能考虑。下一篇介绍std::map >的B
2008-11-07 18:14:00 4076 1
持久化的 map ,使用 BerkeleyDB
项目地址:http://code.google.com/p/febird 使用前面介绍的序列化框架,可以非常简单地将Bekeley DB作为存储层,实现一个易于使用的,强类型的,持久化的map。 这个设计的的基本原则就是:模板作为一个薄的、类型安全的包装层,实现层的代码可以多个模板实例来公用,这样不但加快了编译时间,也减小了生成的代码尺寸。这个实现相当于std::map<...
2008-11-07 18:14:00 375
原创 最便捷、最强大、速度最快的C++序列化框架
项目地址:http://code.google.com/p/febird最便捷、最强大、速度最快的C++序列化框架。 特别注意:vc6太古老,不符合C++规范,无法使用该框架1. 高性能,速度非常快,比你能找到的同类产品至少快一个数量级2. 在网络通讯,数据库存储中非常好用。3. 预先支持所有基本类型,所有stl容器类型(除stac
2008-11-07 18:08:00 17002 10
最便捷、最强大、速度最快的C++序列化框架
最便捷、最强大、速度最快的C++序列化框架。 特别注意:vc6太古老,不符合C++规范,无法使用该框架 1. 高性能,速度非常快,比你能找到的同类产品至少快一个数量级2. &am
2008-11-07 18:08:00 321
febird C++ 库(附带所有源码)
2009-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人