I/O
模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了程序通信的性能 , Java
共支持
3
种网络编程的
I/O
模型:
BlO. NIO. AlO
1、
Java BIO
同步并阻塞(传统阻塞型),服务器实现模式为
一个连接一个线程
,即客户端有连接请求时服务器 端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销
2、
java NIO
Java NIO
:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注 册到多路复用器上,多路复用器轮询到连接有I/O
请求就进行处理
3、java AIO
java AIO(NIO.2)
:异步非阻塞,服务器实现模式为一个
有效
请求一个线程,客户端的
I/O
请求都是
由
OS
先完成了,再通知服务器应用去启动线程进行处理
,一般适用于连接数较多且连接时间较长的应用
4、BIO、NIO、AIO适用场景分析
- BIO方式适用于连接数目比小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用 中, jDK1.4以前的唯一选择,但程序简单易理解。
- NIO方式适用于连接数目多且连接比较短(轻 *** 作)的架构,比如聊天服务器,d幕系统,服务器间通讯等。 编程比较复杂,jDK1 .4开始支持。
- AIO方式使用于连接数目多且连接比较长(重 *** 作)的架构,比如相册服务器,充分调用OS参与并发 *** 作, 编程比较复杂,JDK7开始支持。
评论列表(0条)