摘要: STL内存空间的配置/释放与对象内容的构造/析构,是分开进行的。 对象的构造、析构 对象的构造由construct函数完成,该函数内部调用定位new运算符,在指定的内存位置构造对象。如下: template <typename T1, typename T2> inline void constru 阅读全文
posted @ 2017-07-11 19:59 zxin's 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 一、什么是Redis? 学习Redis最好的是看官网了,下面是Redis的官网对Redis的介绍 可见,Redis是一个内存存储的数据结构服务器,可以用作数据库、缓存等。支持的数据结构也很丰富,有字符串、列表、哈希表、集合、有序集合。而且Redis还提供了持久化功能。不仅如此,Redis还可用于集群 阅读全文
posted @ 2017-07-11 10:10 zxin's 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 一、概念及区别 针对不同的应用场景,选择的分布式存储方案也会不同,因此有了对象存储、块存储、文件系统存储。这三者的主要区别在于它们的存储接口: 1. 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展,如七牛、又拍,Swift,S3 2. 块存储: 这种接口通常以 阅读全文
posted @ 2017-07-09 16:23 zxin's 阅读(12008) 评论(0) 推荐(0) 编辑
摘要: MiniSTL 目前正在完成一个STL,主要想通过该项目锻炼C++编程、模板编程、熟悉STL、锻炼数据结构和算法能力。 项目的目标是实现STL的几大构件+线程安全。项目过程中主要参考SGI STL源码,项目名称为:MiniSTL。 目前已完成空间配置器和迭代器部分,接下来会去实现容器和算法,最后还会 阅读全文
posted @ 2017-06-10 17:51 zxin's 阅读(738) 评论(0) 推荐(0) 编辑
摘要: 我们知道libevent是一个Reactor模式的事件驱动的网络库。 到目前为止,我们已经看了核心的event和event_base结构体的源码,看了初始化这两个结构体的源码,看了注册event的源码,也将event注册到I/O多路复用监听的事件上了。现在准备工作都做好了,下面就是看运行时的主循环了 阅读全文
posted @ 2017-06-01 17:51 zxin's 阅读(14427) 评论(0) 推荐(1) 编辑
摘要: 接下来就是将已经初始化的event注册到libevent的事件链表上,通过event_add()来实现,源码位于event.c中。 event_add() 这个函数主要完成了下面几件事: 1.将event注册到event_base的I/O多路复用要监听的事件中 2.将event注册到event_ba 阅读全文
posted @ 2017-06-01 15:30 zxin's 阅读(6564) 评论(0) 推荐(2) 编辑
摘要: 1.使用libevent库 源码那么多,该怎么分析从哪分析呢?一个好的方法就是先用起来,会用了,然后去看底层相应的源码,这样比较有条理,自上向下掌握。下面用libevent库写个程序,每隔1秒输出一行信息。 test.c 2.event, event_base 经过第1步,下面开始看上面程序中的每一 阅读全文
posted @ 2017-05-30 12:12 zxin's 阅读(1657) 评论(0) 推荐(1) 编辑
摘要: 练习libevent库的使用,主要是几个API的调用顺序。根据event.h的开头注释部分可知,要使用libevent库,主要的几个API及调用顺序为: event_base()初始化event_base event_set()初始化event event_base_set()将event绑定到指定 阅读全文
posted @ 2017-05-30 11:59 zxin's 阅读(1484) 评论(0) 推荐(0) 编辑
摘要: 初始化完event_base后,下面要初始化event,通过调用event_set()实现 。相关源码位于event.c event_set() 通过传入的参数:fd, events, 回调函数,arg设置event的相应成员,并初始化event在小根堆中的索引为-1,以及设置event的优先级。 阅读全文
posted @ 2017-05-30 11:54 zxin's 阅读(3755) 评论(0) 推荐(0) 编辑
摘要: 下面开始看初始化event_base结构的相关函数。相关源码位于event.c event_init() 首先调用event_init()初始化event_base结构体 struct event_base * event_init(void) { struct event_base *base = 阅读全文
posted @ 2017-05-30 11:43 zxin's 阅读(3471) 评论(0) 推荐(1) 编辑
点击右上角即可分享
微信分享提示