BIO NIO AIO

BIO:采用BIO通信模型的服务端通常由一个独立的Acceptor线程负责接收客户端的连接,它接收到客户端的连接后,会为每一个客户端创建一个新的线程进行处理,返回数据后会销毁线程,典型的一请求一应答模型,该模型缺乏弹性伸缩能力,当服务端接收并发数量比较多时, 系统将会发生堆栈溢出和不能创建新线程,导致服务端不能对外提供服务

线程数与客户端请求数1:1

 

伪异步IO通信

当一个客户端请求到达时,将其封装成一个task投入到线程池进行处理,线程池可以设置消息(工作)队列,不过随着大量并发,可能造成阻塞

NIO通信

缓冲区Buffer:NIO中所有数据都通过缓冲区操作

通道Channel:双向

多路复用器Selector:类同监听器,轮询注册在其上的Channel,如果某个Channel发生读或写状态,selector就可以将其挑选出来,由于JDK 新版采用epoll代替传统selector实现,并没有最大连接数的限制

Selector允许单线程处理多个 Channel,如果应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便

 

 

 

AIO通信:异步非阻塞IO

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值