互联网行业:
典型应用:
大数据领域
用什么样的channel(通道)进行数据的发送和接收, 很大程度上决定了通信的性能。
Java共支持3种网络编程模型/IO模式: BIO(Blocked IO)、NIO(None Blocked IO)、AIO(Asynchronized IO)
BIO: 同步且阻塞(传统阻塞型), 服务器实现模式为一个连接一个线程, 即客户端有连接请求时服务器就需要启动一个线程进行处理, 如果该连接不做任何事情就会造成不必要的线程开销
NIO: 同步非阻塞, 服务器实现模式为一个线程处理多个请求(连接), 即客户端发送的连接请求都会注册到多路复用器上, 多路复用轮询到连接有I/O请求就进行处理
AIO: 异步非阻塞, AIO 引入异步channel(通道)的概念, 采用了Proactor模式, 简化了程序编写, 有效的请求才启动线程, 它的特点是先由操作系统完成后才通知服务端程序启动线程去处理, 一般适用于连接数较多且连接时间较长的应用。
适用场景分析
原文:https://www.cnblogs.com/ronnieyuan/p/11967048.html