先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法 一、问题引出 联系区别 问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种 ...
分类:
其他好文 时间:
2016-08-02 21:01:35
阅读次数:
145
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。如果一个TCP服务..
分类:
其他好文 时间:
2016-08-02 17:20:23
阅读次数:
279
IO多路复用是同步IO的一种,用一个进程一次等待多个IO就绪事件的发生,加大概率,尽可能高效的等。适用场景(1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。(2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。(3)如果一..
分类:
其他好文 时间:
2016-08-01 23:34:07
阅读次数:
431
1、基本知识poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而..
分类:
其他好文 时间:
2016-08-01 23:29:24
阅读次数:
227
1、基本知识epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。..
分类:
其他好文 时间:
2016-08-01 23:03:43
阅读次数:
178
epoll就是为了处理大批量句柄而改进的poll,相比与select,poll最大的好处在于它不会随着坚挺fd的数目增长而效率降低。因为在内核中的select是采用轮询来处理的,轮询fd的数目越多,自然耗时越多,并且slelct的监听数目有限(虽然可以通过头文件来改变,但并不治本)一.epoll的..
分类:
其他好文 时间:
2016-08-01 07:00:05
阅读次数:
222
随着IO多路复用技术的出现,出现了很多事件处理模式。同步I/O模型通常由Reactor模式实现,而异步I/O模型则由Proactor模式实现。 Reactor模式: Reator类图如上所示,Reactor模式又叫反应器或反应堆,即实现注册描述符(Handle)及事件的处理器(EventHandle ...
分类:
其他好文 时间:
2016-08-01 01:45:13
阅读次数:
500
常见的linux服务器类型1.多进程并发服务器2.多线程并发服务器3.select多路I/O转接服务器4.poll多路I/O转接服务器5.epoll多路I/O转接服务器多路IO是指单个线程通过记录跟踪每一个IO流的状态同时来管理多个IO流,尽量提高服务器的吞吐量与多进程多线程相比IO多路复用的计数最大优..
分类:
其他好文 时间:
2016-07-30 15:12:27
阅读次数:
181
I/O多路转接之select(只负责等)系统提供select函数来实现多路复用输入/输出模型。传向select的参数告诉内核:1)我们所关心的文件描述符。参数nfds是需要监视的最大的文件描述符值+1;2)对每个描述符,我们所关心的状态。rdset,wrset,exset分别对应于需要检测的可读文件描述..
分类:
其他好文 时间:
2016-07-30 15:09:41
阅读次数:
142
http://www.jianshu.com/p/1020c11f016c Java程序员进阶三条必经之路:数据库、虚拟机、异步通信。 前言 从零单排高性能问题,这次轮到异步通信了。这个领域入门有点难,需要了解UNIX五种IO模型和TCP协议,熟练使用三大异步通信框架:Netty、NodeJS、To ...
分类:
其他好文 时间:
2016-07-30 15:01:47
阅读次数:
286