网络
文章平均质量分 51
网络的学习记录
lkness
学不见其长,但日有所增
展开
-
C时间轮
看完了《linux高性能服务器编程》对里面的定时器很感兴趣。书中提到三种定时器,分别是:基于升序链表的定时器,基于时间轮的定时器,基于时间堆的定时器。三种定时器的实现书中均是给了C++代码,不过我对C++不太感兴趣,虽然现在在做C++开发,因此写了C版本的。书中定时器只给了封装的定时器类,没有给调用层代码,我是估摸着写了调用层代码。这里做个总结,以后可以翻翻:基于升序链表的定时器没太大难度,因此也懒原创 2016-09-02 23:44:07 · 3287 阅读 · 1 评论 -
C时间堆
跟上一篇,这里写一下时间堆:时间轮的滴答是固定以指定的槽间隔触发,而时间堆是以定时器堆中的最小到期时间做定时,也就是alarm(minTimeout),一旦定时器被触发,那么就删除此定时器,更新时间堆,将新的最小到期时间定时器作为新的定时。然后是时间堆的数据结构,这里用了二叉树,将二叉树的根节点作为最小最小到期时间,每次滴答就取根节点,并且是完全二叉树,因此比较容易理解,我也懒得画图了,截了书上的图原创 2016-09-03 00:22:41 · 833 阅读 · 0 评论 -
c半同步半异步进程池模型之cgi服务器
对半同步半异步进程池模型垂涎已久,这次中秋放假撸了下代码,代码写了几个模块,分别是: util:封装了套接字创建、unix族socket管道创建、中断信号、简单屏幕输出(可自行替换为日志文件输出) epoll_wrapper:封装了epoll相关操作包括创建epfd、添加epoll监听事件、删除epoll监听事件 myhshappool(我的半同步半异步进程池 - -!…):封装了进程池初始化原创 2016-09-17 22:24:56 · 1140 阅读 · 0 评论