BIO、NIO、AIO

说下自己的理解;

BIO:java.io包下的所有类都属于BIO模型,在活动连接数小于1000的时候性能还是不错的,每个线程干自己的事,干完了可能还会闲在那里没事干;但是遇到高并发时,因为CPU在不同线程之间频繁地切换会导致处理速度下降,所以引入NIO;

NIO:单独用一个线程去专门处理IO操作,普通线程只用请求IO处理,然后交给专门的线程去处理;CPU的线程就可以不用在不同JVM线程中频繁切换浪费时间,可以继续往下跑代码;

BIO为阻塞模型,没什么好说的;

NIO主要包含三个核心组件:Channel、Buffer、Selector

  • Channel:Channel与Buffer进行交互,Channel可以对比Stream流,流是单向的,有输入流、输出流之分,如FileOutputStream、FileInputStream,而Channel是双向的,作为NIO的传输通道;
  • Selector:多路选择器,实现在一个线程里调用不同的Channel传输数据;
  • Buffer:任何读写操作,都是直接与缓冲区进行数据交换;NIO是对缓冲区的数据进行访问;而经典的BIO模型是对流进行访问;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值