java NIO和BIO的网上介绍总结
来源:互联网 发布:java计算程序运行时间 编辑:程序博客网 时间:2024/06/05 10:44
1、概念介绍:
BIO(Blocking IO):阻塞IO
NIO(Non-Blocking IO):非阻塞IO
2、同异步及阻塞非阻塞介绍(以去银行取钱为例):
同步:自己吃银行卡去取钱(使用同步IO时,java自己处理IO读写);
异步:委托小弟拿银行卡去取钱,然后给你(java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS,OS需要支持异步IO操作API);
阻塞:ATM排队取款,你只能等待(使用阻塞IO时,java调用会一直阻塞到读写完成才返回);
非阻塞:柜台取款,排号等待,自己在做自己的事,然后等候广播通知,或者不断问尽力是否到你了(使用非阻塞IO时,如果不能读写java调用会马上返回,当IO时间分发器会通知可读写时再继续进行读写,不断循环知道读写完成);
3、java对该技术的支持:
java BIO:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善;
java NIO:同步非阻塞,服务器实现模式为一个请求一个线程,NIO多线程对某资源进行IO操作时会先把资源先操作至内存缓冲区。然后询问是否IO操作就绪,是则进行IO操作,否则进行下一步操作,然后不断的轮询是否IO操作就绪,直到iIO操作就绪后进行相关操作
java AIO:异步非阻塞,异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。
4、BIO和NIO的异同:
共同点:两者都是同步操作。即必须先进行IO操作后才能进行下一步操作。
不同点:BIO多线程对某资源进行IO操作时会出现阻塞,即一个线程进行IO操作完才会通知另外的IO操作线程,必须等待。
- java NIO和BIO的网上介绍总结
- Java的BIO、NIO和AIO介绍
- JAVA BIO NIO和AIO的区别
- Java BIO,NIO理论总结
- Java bio nio aio 总结
- Java BIO, NIO, AIO 总结
- Java BIO NIO AIO 模型介绍和使用样例
- java NIO BIO和AIO
- 【java总结】关于BIO、NIO、AIO的理解
- JAVA的BIO,NIO,AIO
- tomcat的nio和bio
- BIO和NIO的区别
- java的BIO,NIO,AIO的区别和用法
- BIO,NIO,AIO及netty的介绍
- NIO BIO APR介绍
- bio、nio 、aio介绍
- BIO、NIO、AIO介绍
- JAVA中的BIO、NIO和AIO
- 文章标题
- oracle 两个时间相减
- visaual stdio 2012 相关快捷键
- Java 中基本类型和包装类之间的转换
- 填坑
- java NIO和BIO的网上介绍总结
- [从头读历史] 第270节 诗经 王风
- "建造者模式"-之Java,Android面试必问设计模式(4/9)
- 单片机驱动DM9000网卡芯片(详细调试过程)【上】
- php发送短信(调用网易云信实现)
- Python yield 使用浅析
- java list去重
- Java实现冒泡排序
- 单片机驱动DM9000网卡芯片(详细调试过程)【下】