阻塞IO模型
阻塞IO是最通用的IO,使用这种IO接受数据时,在数据没有到来之前程序会一直等待。
非阻塞IO
当把套接字设置成非阻塞IO时,则对于每次请求,内核都不会阻塞,会立即返回。当没有数据时,会返回一个错误。
IO复用
使用IO复用的可以在等待的时候假如超时时间,当超时时间没有到达的时候情况与阻塞IO是一样的,当时间到达,但是没有数据是,系统会自动返回,不在等待。s...
分类:
其他好文 时间:
2015-07-30 21:25:39
阅读次数:
132
也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO...
分类:
编程语言 时间:
2015-07-28 20:47:53
阅读次数:
177
前言:最近在研究java netty这个网络框架,第一篇先介绍java的nio。
java nio在jdk1.4引入,其实也算比较早的了,主要引入非阻塞io和io多路复用。内部基于reactor模式。
nio核心:
- buffer
- channel
- selector
buffer:
类似网络编程中的缓冲区,有
ByteBuffer 字节
CharBuf...
分类:
编程语言 时间:
2015-07-26 22:45:57
阅读次数:
132
转载:http://blog.csdn.net/jay900323/article/details/18141217Linux五种IO模型性能分析目录(?)[-]概念理解Linux下的五种IO模型阻塞IO模型非阻塞IO模型IO复用模型信号驱动IO异步IO模型个IO模型的比较selectpollepo...
分类:
系统相关 时间:
2015-07-14 15:11:16
阅读次数:
282
设置描述符非阻塞的两种方法:1,调用 open 时,设置,O_NONBLOCK;2,调用 fcntl设置;具体如下:1,open("/xxx/file1",O_RDWR|O_NONBLOCK);2,val=fcntl(fd,F_GETFL,0); F_GETFL获取文件状态标识 val |...
分类:
其他好文 时间:
2015-07-12 17:07:22
阅读次数:
98
IO多路转接的技术可以避免阻塞IO的弊端,因为我们有时候需要在多个描述符上读read、写write,如果使用阻塞IO,就有可能长时间阻塞在某个描述符上而影响其它描述符的使用。关于阻塞IO的处理办法,可以考虑一下几个方案:1、多进程。弊端是多个进程终止时的通信,增加了程序的复杂度。2、多线程。弊端是多个线程之间的同步,同样也增加了程序的复杂度。3、轮询polling。使用非阻塞IO读取数据,弊端是浪费...
分类:
其他好文 时间:
2015-07-03 10:31:44
阅读次数:
125
有很多人把阻塞认为是同步,把非阻塞认为是异步;个人认为这样是不准确的,当然从思想上可以这样类比,但方式是完全不同的,下面说说在JAVA里面阻塞IO和非阻塞IO的区别 在JDK1.4中引入了一个NIO的类库,使得Java涉及IO的操作拥有阻塞式和非阻塞式两种,问一下阻塞IO与非阻塞IO有什么区别?有什...
分类:
其他好文 时间:
2015-06-18 19:38:35
阅读次数:
112
今天用ab进行压力测试时,无意发现的:Requestspersecond:xxx[#/sec](mean)ab-n5000-c1000http://www:8080/upload/5kb.jpg(NIOServer:700AIO:400)ab-n5000-c1000http://www:8080/u...
分类:
编程语言 时间:
2015-06-18 09:21:09
阅读次数:
126
项目组是做IM产品的,服务端当然用的是NIO技术做通信底层。但是一直都是对NIO有些理论的了解,没有实践,最近有空了,就实践了下NIO。
NIO,新IO,也称之为非阻塞IO。非阻塞是它跟传统IO的最重要的区别之一。传统IO用Socket进行通信,NIO则用channel进行消息交互。channel必须注册到selector上,把它感兴趣的事件告诉selector。这是个观察者模式的实现。...
分类:
编程语言 时间:
2015-06-10 19:27:22
阅读次数:
134
Java NIO是非阻塞IO的实现,基于事件驱动,非常适用于服务器需要维持大量连接,但是数据交换量不大的情况,例如一些即时通信的服务等等,它主要有三个部分组成:ChannelsBuffersSelectorsChannel有两种ServerSocketChannel 和 SocketChannel,...
分类:
编程语言 时间:
2015-06-07 12:30:26
阅读次数:
170