Netty-三种IO方式-对比介绍

1、IO模型是什么

IO模型可以理解为是通信双方用什么样的通道进行数据的接收和发送

2、Java支持的IO模型

Java支持三种网络编程模型/IO模式:BIO、NIO、AIO

  • BIO:同步阻塞,服务器实现模型是为每个连接创建一个线程,当客户端请求服务端时就要启动一个新线程进行处理,不管这个连接要求什么数据/不要求数据
    在这里插入图片描述
  • NIO:同步非阻塞,服务器实现模式–一个线程处理多个请求,客户端发起的连接请求都会注册到多路复用器上进行轮询,一次只有一个进行IO请求
    在这里插入图片描述
  • AIO/NIO.2:异步非阻塞,当前使用的不多,AIO引入异步通道的概念,采用Proactor模式简化程序编写,当请求有效的时候才启动线程。
    先有操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间长的应用

3、适用场景区分

  • BIO:适用于连接数目较小且固定的情况,使用BIO对服务器资源的要求很高,因为线程消耗的资源比较多,在JDK1.4之前只有BIO
  • NIO:适用于连接数目多且连接/轻操作比较短的架构,比如聊天服务器、弹幕服务器等。编程复杂,从JDK1.4开始支持NIO
  • AIO:适用于连接数较多且连接时间长/重操作次数多的架构。比如相册服务器等。编程复杂,JDK7之后支持
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值