Reactor模式和NIO本文可看成是对Doug Lea Scalable IO in Java一文的翻译。当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构:1. Read request2. Decode request3. ...
                            
                            
                                分类:
其他好文   时间:
2014-12-31 17:48:08   
                                阅读次数:
291
                             
                    
                        
                            
                            
                                Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD...
                            
                            
                                分类:
其他好文   时间:
2014-12-25 16:06:05   
                                阅读次数:
290
                             
                    
                        
                            
                            
                                在前面的文章中介绍了五种 I/O 模型《I/O 模型》,这里介绍 I/O 模型中 I/O 多路复用在 TCP 套接字编程中的使用。在  I/O 多路复用中主要是 select 和 poll 函数的使用。
select 函数
        该函数允许进程指示内核等待多个事件中的任何一个发生,并只在一个或多个事件发生或超过指定时间后才被唤醒。进程调用 select 函数是告知内核,进程对哪些描述...
                            
                            
                                分类:
其他好文   时间:
2014-12-13 17:57:48   
                                阅读次数:
166
                             
                    
                        
                            
                            
                                在分析 I/O 模型之前,首先了解 同步 I/O 和 异步 I/O 的基本概念:
同步 I/O:进程调用 I/O 操作函数时,在 I/O 操作函数返回之前,该进程会被挂起(即阻塞),直到 I/O 操作完成后返回;
异步 I/O:进程调用 I/O 操作函数时,在 I/O 操作函数返回之前,该进程不会被挂起(即不阻塞),当 I/O 操作完成后会通知方式告知进程;
在 Unix 系统中主要有 5 种 I/O 模型:阻塞式 I/O;非阻塞式 I/O;I/O 多路复用;信号驱动式 I/O;异步 I/O;
一般一个输入...
                            
                            
                                分类:
其他好文   时间:
2014-12-13 13:31:12   
                                阅读次数:
188
                             
                    
                        
                            
                            
                                select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:#include#includeintselect(intmaxfd,fd_set*rdset,fd_set*wrset,fd_set*exset,structtime...
                            
                            
                                分类:
其他好文   时间:
2014-12-12 13:04:19   
                                阅读次数:
137
                             
                    
                        
                            
                            
                                阻塞I/O  说明1:当上层应用Application1调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞[默认:被Linux内核阻塞)说明2:当对等方发送了数据,Linux内核recv端缓冲区数据到达,内核会把数据copy给用户空间。然后上层应用Application1解除阻塞,执行下一步操作。 非阻塞I/O 说明1: 上层应...
                            
                            
                                分类:
其他好文   时间:
2014-12-06 16:53:38   
                                阅读次数:
208
                             
                    
                        
                            
                            
                                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
                             
                    
                        
                            
                            
                                服务器端:
{CSDN:CODE:541584}
客户端:
{CSDN:CODE:541585}...
                            
                            
                                分类:
其他好文   时间:
2014-12-04 10:22:30   
                                阅读次数:
100
                             
                    
                        
                            
                            
                                本文对Apache下Prefork, Worker, Event MPM进程、线程模型及使用场景做了一一讲解...
                            
                            
                                分类:
Web程序   时间:
2014-12-03 10:37:55   
                                阅读次数:
198
                             
                    
                        
                            
                            
                                select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeo...
                            
                            
                                分类:
其他好文   时间:
2014-11-29 10:16:34   
                                阅读次数:
194