epoll与select/poll的区别
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪,能够通知程序进行相应的操作。
select的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时...
分类:
系统相关 时间:
2014-12-06 14:07:16
阅读次数:
326
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?
先简单回顾下如何使用C库封装的3个epoll系统调用吧。
...
分类:
系统相关 时间:
2014-11-19 20:34:27
阅读次数:
180
Libevent设计的精化之一在于把Timer事件、Signal事件和IO事件统一集成在一个Reactor中,以统一的方式去处理这三种不同的事件,更确切的说是把Timer事件和Signal事件融合到了IO多路复用机制中。 Timer事件的融合相对清晰简单,其套用了Reactor和Proacto...
分类:
其他好文 时间:
2014-11-15 21:37:14
阅读次数:
310
Netty的ByteBuf缓冲区实现地比Java本身的ByteBuffer更加灵活,方便。它的类结构也比较复杂,这里只说ByteBuf核心的几个要点。
1. 最重要的是要理解为什么要ByteBuf这个组件。主要还是因为基于select / poll / epoll这种IO多路复用技术的NIO是非阻塞同步IO的模型,由于是同步IO,需要用户线程自己来处理IO的读写,由于是非阻塞的,每次调用...
分类:
Web程序 时间:
2014-09-22 19:06:32
阅读次数:
626
1. Reactor和Preactor模式
Reactor用于同步IO,Preactor用于异步IOReactor通常会和Connector模式一起使用,进一步解耦连接的建立与连接以后的逻辑
2. Reactor模式中的主要角色
2.1. Reactor
Reactor是IO事件的派发者。
2.2. Acceptor
Acceptor接受client连接,建立对...
分类:
其他好文 时间:
2014-07-22 00:30:34
阅读次数:
391
http://blog.csdn.net/zhang_shuai_2011/article/details/7675797select,poll,epoll都是IO多路复用的机制。所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程...
分类:
其他好文 时间:
2014-06-28 11:32:37
阅读次数:
230
Linux网络编程 五种I/O
模式及select、epoll方法的理解web优化必须了解的原理之I/o的五种模型和web的三种工作模式五种I/O
模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
分类:
系统相关 时间:
2014-05-21 20:56:15
阅读次数:
330