摘要: A Tour of Go Go编程基础 Go 语言圣经 中文版 阅读全文
posted @ 2017-10-17 21:07 Sawyer Ford 阅读(242) 评论(0) 推荐(0) 编辑
摘要: libevent使用struct event来表示一个事件。 具体字段含义不再细说,可参考event_assign进行理解。 int event_assign(struct event *ev, struct event_base *base, evutil_socket_t fd, short e 阅读全文
posted @ 2017-10-17 17:30 Sawyer Ford 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 接上文libevent(三)event_base event_io_map event_list是双向链表,min_heap是小根堆,那event_io_map是什么呢? 在Linux系统中,event_io_map就是event_signal_map。 event_signal_map 上一张镇楼 阅读全文
posted @ 2017-10-17 13:54 Sawyer Ford 阅读(271) 评论(0) 推荐(0) 编辑
摘要: libevent能够处理三种事件: I/O、定时器、信号。 event_base 统一管理所有事件。 eventop 用于描述event_base的底层实现机制 libevent支持多种平台,因此定义了一个全局数组来存放多个eventop。 Linux平台的I/O多路复用机制是epoll,对应epo 阅读全文
posted @ 2017-10-17 10:38 Sawyer Ford 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 本文主要研究libevent中用来存储事件的两个结构体。 尾队列 具体定义位于queue.h中。 从定义可以看出,尾队列是一个双向链表,具体表现为: 一个小DEMO: #include <stdio.h> #include <stdlib.h> #include <sys/queue.h> #def 阅读全文
posted @ 2017-10-17 09:44 Sawyer Ford 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 开始研究libevent,使用的版本是2.0.22。 实现一个定时器:每2秒执行一次printf。 参考资料: libevent分析 - sparkliang的专栏 - 博客频道 - CSDN.NET Libevent源码分析 - luotuo44的专栏 - 博客频道 - CSDN.NET 阅读全文
posted @ 2017-10-17 09:34 Sawyer Ford 阅读(2666) 评论(0) 推荐(0) 编辑