网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下OIO、NIO、AIO。
OIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:
NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:
AIO(...
分类:
其他好文 时间:
2014-05-23 01:00:05
阅读次数:
470
在上一篇博客中,一个简单的AIOweb处理例子,可以看到AIO异步处理,依赖操作系统完成IO操作的Proactor处理模型确实很强大,可以是实现高并发,高响应服务器的不错选择,但是在tomcat中的connector的处理模型还依旧是基于NIO的处理,当然,我认为这可能会在以后的版本进行改进,但另一方面,我更认为AIO的负载控制方面的处理可能是比较难的,因为AIO api并没有提供我们对分配线程组的处理,而只是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给需要复杂处理的负载均衡带来一定...
分类:
Web程序 时间:
2014-05-11 22:07:20
阅读次数:
385
一下是一个基于AIO实现的简单web服务器,这是一个简单例子...
分类:
Web程序 时间:
2014-05-08 04:48:53
阅读次数:
341
正在学习《大型网站系统与JAVA中间件实践》,发现对BIO、NIO、AIO的概念很模糊,写一篇博客记录下来。先来说个银行取款的例子:同步 :
自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。异步 :
委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读...
分类:
编程语言 时间:
2014-05-01 07:46:32
阅读次数:
373