动态海报网站,什么叫网站流量,wordpress页面内容,企业做优化好还是超级网站好文章目录 通信技术整体解决的问题1 I/O 模型基本说明2 I/O模型Java BIOJava NIOJava AIO 3 BIO、NIO、AIO 适用场景分析 通信技术整体解决的问题
局域网内的通信要求。多系统间的底层消息传递机制。高并发下#xff0c;大数据量的通信场景需要。游戏行业。无论是手游服务端大数据量的通信场景需要。游戏行业。无论是手游服务端还是大型的网络游戏Java语言都得到越来越广泛的应用。
1 I/O 模型基本说明
I/O 模型就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收很大程度上决定了程序通信的性能Java 共支持 3 种网络编程的/IO 模型BIO、NIO、AIO 实际通信需求下要根据不同的业务场景和性能需求决定选择不同的I/O模型
2 I/O模型
Java BIO
同步并阻塞(传统阻塞型)服务器实现模式为一个连接一个线程即客户端有连接请求时服务器 端就需要启动一个线程进行处理如果这个连接不做任何事情会造成不必要的线程开销 【简单示意图 Java NIO
Java NIO 同步非阻塞服务器实现模式为一个线程处理多个请求(连接)即客户端发送的连接请求都会注 册到多路复用器上多路复用器轮询到连接有 I/O 请求就进行处理 【简单示意图】
Java AIO
Java AIO(NIO.2) 异步 异步非阻塞服务器实现模式为一个有效请求一个线程客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理一般适用于连接数较 多且连接时间较长的应用
3 BIO、NIO、AIO 适用场景分析
1、BIO 方式适用于连接数目比较小且固定的架构这种方式对服务器资源要求比较高并发局限于应用中JDK1.4以前的唯一选择但程序简单易理解。 2、NIO 方式适用于连接数目多且连接比较短轻操作的架构比如聊天服务器弹幕系统服务器间通讯等。 编程比较复杂JDK1.4 开始支持。
3、AIO方式使用于连接数目多且连接比较长重操作的架构比如相册服务器充分调用 OS 参与并发操作 编程比较复杂JDK7 开始支持。