在之前博文libevent之Reactor模式中,我们知道Reactor模式中一个重要的组件就是事件多路分发机制(event demultiplexer)。而在libevent中,对事件多路分发机制的支持依赖于操作系统支持的多路复用机制(select、poll、epoll等)。eventop ...
分类:
其他好文 时间:
2015-09-21 01:19:49
阅读次数:
218
通过前边的一篇博文轻量级网络库libevent初探,我们知道libevent实际上是封装了不同操作系统下的/dev/poll、kqueue、event ports、select、poll和epoll事件机制,从而给我们提供一个统一的接口。 libevent采用了Reactor I/O 设计模式...
分类:
其他好文 时间:
2015-09-19 00:54:51
阅读次数:
308
在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加入了epoll之后,在高性能服务器领域得到广泛的应用,现在比较出名的nginx就是使用epoll来实...
分类:
系统相关 时间:
2015-09-17 21:35:13
阅读次数:
187
IO复用,说得粗鄙一点,就是不用开多线程也能发送和接收消息。不多说,看代码:(select和poll是别人写的。引用一下,别见怪。)select:#include #include #include #include #include #include const static int MAXLIN...
分类:
其他好文 时间:
2015-09-17 17:33:03
阅读次数:
138
转载自http://blog.csdn.net/xiajun07061225/article/details/9250579什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4)...
分类:
其他好文 时间:
2015-09-16 19:36:32
阅读次数:
273
原文地址:http://blog.chinaunix.net/uid-17299695-id-3059078.htmlET模式仅当状态发生变化的时候才获得通知,这里所谓的状态的变化并不包括缓冲区中还有未处理的数据,也就是说,如果要采用ET模式,需要一直read/write直到出错为止,很多人反映为什...
分类:
其他好文 时间:
2015-09-15 23:29:44
阅读次数:
194
咦,这些内容,和我以前看内核时的东东,对应起来了。。SELECT,POLL,EPOLL,非阻塞,异步之类的。。。但我没有调出来。回家有空了可以看看,不用再敲打代码啦。。。#!/usr/bin/env pythonimport socket, sys, selectport = 54321host =...
分类:
其他好文 时间:
2015-09-15 17:59:35
阅读次数:
131
本文为作者原创,转载请注明出处:http://my.oschina.net/fuckphp/blog/505956 ????????????Redis 的 ae模块的代码主要分布在 ae.c ae.h 还有 ae_*.c 中,分别实现了epoll、evport、kqueue、select几...
分类:
其他好文 时间:
2015-09-14 19:47:41
阅读次数:
221
为什么选择多线程?而不是多进程?比起多进程来说,线程间通信简单(全局变量就可以了),而多进程之间的通信相对而言更繁琐一些,呵呵...我们的问题如何产生的?问题的根本原因是什么?事情是这样的,模块之间需要通信,我们用了openwrt的开源代码ubus做消息转发在我们的每个需要通信的模块中创建了一个线程...
分类:
编程语言 时间:
2015-09-09 14:48:14
阅读次数:
321