BIO/NIO/AIO 三种IO模式概述

1、BIO(block io 同步阻塞模式)

1. BIO模式问题

1.1 阻塞问题

  • 服务端在接收客户端套接字请求时,accept() 方法阻塞等待:一直等到有客户端接入时才往下执行。

  • 客户端写数据时,阻塞:一直停留在wirte() 这行代码,直到把所有的消息全部写出去,并且服务端接受到消息。



1.2 多线程问题

服务端接收套接字后,都需要开辟一个线程进行处理,非常消耗服务器的性能。

2、NIO(none block io 同步非阻塞模式)

buffer缓冲区、channel管道、Selector多路复用器

2.1 Selector

多路复用器的作用:轮询,轮询每个channel管道,查看是否读事件、写事件,若有则处理。通过一个Selector多路复用器,就可以同时处理很多的客户端请求,大大提高了效率,降低了系统开销。

2.2 NIO和BIO本质上属于同步IO

同步:服务端处理客户端请求需要主动查看客户端的消息。

3、AIO(asychronous IO  异步非阻塞模式)

不需要selector多路复用器在管道之间轮询查看,aio是事件驱动形式。也就是当客户端发送数据之后,会主动通知服务器,接着服务器再进行读写操作。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值