- 博客(7)
- 资源 (3)
- 收藏
- 关注
转载 深入分析Memcached的线程接入模型---下
<br />view plaincopy to clipboardprint?<br />/* <br /> * Processes an incoming "handle a new connection" item. This is called when <br /> * input arrives on the libevent wakeup pipe. <br /> */ <br />static void thread_libevent_process(int fd, short whi
2010-06-19 17:27:00 612
转载 深入分析Memcached的线程接入模型---中
<br />三,在main()函数中,初始化main_thread的event_base实例,见memcached.c<br />view plaincopy to clipboardprint?<br />//定义main_thread的event_base实例 <br />static struct event_base *main_base; <br /> <br />//下面代码略 <br />… <br /> <br />/* initialize main thread li
2010-06-19 17:26:00 549
转载 深入分析Memcached的线程接入模型---上
memcached是一个分布式的内存cache系统,目前被大量地运用于各种各样的站点中,以不断提高站点的总体访问性能,而另外一方面,memcached的使用是非常简单的,可以说,使用门槛很低,这也许是造成memcached目前非常流行的原因之一。我们可以看到,网上分析memcached的文章也比较多,本文是笔者结合memcached源代码的基础上对其线程接入模型进行深入的分析,通过学习和借鉴memcached设计和实现上 的一些思想,为我们的系统架构设计增添新的思路。简单的说,memcached的实现并没有
2010-06-19 17:25:00 715
原创 使用 getopt() 进行命令行处理
所有 UNIX® 程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与其他程序或用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用。不过很多开发人员都将其宝贵的时间花在了编写自己的命令行解析器,却不使用 getopt(),而后者是一个专门设计来减轻命令行处理负担的库函数。请阅读本文,以了解如何让 getopt() 在全局结构中记录命令参数,以便随后随时在整个程序中使用。<br />
2010-06-17 15:58:00 571
原创 libevent学习总结
<br />对libevent进行一下简要的总结,libevent将socket、信号事件、定时器进行统一管理;<br />Libevent首先会检查操作支持那种类型的多路复用函数,检查顺序为:evport、kqueue、epoll、devpoll、poll、select。<br /> <br />主要研究了一下libevent 对socket的管理,信号事件处理和定时器处理粗略看过(本文主要以epoll多路复用方式下的情况进行了简要的总结)。<br />在libevent中,所有数据结构的跟为:struc
2010-06-16 22:53:00 3622 1
原创 epoll精髓
<br />在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。<br />相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:<br />#define __FD_SETSIZE 1024<br />表示select最多同时监听1024
2010-06-11 14:10:00 747
转载 判断链表是否存在环并找出环的入口
<br />有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。<br />问题:<br />1、如何判断一个链表是不是这类链表? <br />如果链表为存在环,如果找到环的入口点? <br />解答:<br />一、判断链表是否存在环,办法为:<br />设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先
2010-06-08 11:35:00 859
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人