NIO编程介绍 (2)

AIO引入了异步通道的概念,采用了Proactor模式,简化了程序编写。它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间比较长的应用。

Proactor模式是一个消息异步通知的设计模式,Proactor通知的部署就绪事件,而是操作完成事件。

适用场景:

BIO适用于连接数比较小且固定的架构,这种方式对服务器资源要求比较高

NIO适用于连接数目多且比较短的架构,比如聊天服务器,弹幕系统,服务期间通讯等

AIO适用于连接数多且连接比较长的架构,比如相册服务器。

NIO编程 2.1 NIO介绍

Java NIO是JDK提供的新API。NIO有三个核心部分:Channel,Buffer,Selector。NIO是面向缓冲区编程的。JAVA NIO的非阻塞模式,是一个线程从某个通道发送或读取数据,仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而不是阻塞线程。

通俗理解:NIO是可以做到用一个线程来处理多个操作的。假设有1000个请求过来,根据实际情况,可以分配50或100个线程来处理。不像BIO那样,非得分配1000个线程。

NIO和BIO比较

BIO是以流的方式处理数据,而NIO是以缓冲区的方式处理数据

BIO是阻塞的,NIO是非阻塞的

BIO基于字节流和字符流操作,而NIO是基于Channel和Buffer进行操作。NIO基于Selector监听多个通道的事件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsjzy.html