BIO、NIO、AIO区别(炒鸡容易理解)

BIO、NIO、AIO区别

在了解它们的区别之前,我们首先先要了解以下几点概念:

  1. 阻塞:进行读写操作时,没有东西可读可写时,程序就进入等待的状态,直到可读或可写为止。(简单的理解就是一根筋,必须要等这件事做完才去做其他的事情,否则一直处于等待的状态。)
  2. 非阻塞:进行读写操作时,没有东西可读可写时,Java调用会马上返回 ,程序不会等待。(你先排上号,先去干其他的事情,当叫到你的时候,你再去干这个事情)。
  3. 同步:当触发IO操作的时候,java自己处理IO的读写操作。(自己亲自出马去干的一些事情)
  4. 异步:Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS,OS需要支持异步IO操作API 。(指示别人帮自己做一些事情,你可以先干些别的,做完了并通知自己一声)

BIO、NIO、AIO三者的区别

  1. BIO:同步并阻塞,服务器启动一个连接一个线程,适用于并发量要求不高的场景。(当你5岁时,做事还不懂的变通,你妈妈让你去烧两壶水,你那时还比较单纯(一根筋),你就先坐一壶水,就在这一直等着,也不敢动,烧开一壶,再去烧下一壶)
  2. NIO:同步非阻塞,服务器实现模式为一个请求一个线程,适用于高并发量要求的场景 。(当你长大一点了8岁的时候,学了一点知识聪明了的时候,你妈妈又让你去烧两壶水,你就会把两壶水都坐上,哪壶水烧开了,你就去处理哪壶水)
  3. AIO:异步非阻塞 ,服务器实现模式为一个有效请求一个线程 ,技术不算成熟,应用场景不算多。(当你12岁的时候,你妈妈让你烧两壶水,你和你妈妈提意见要买一个烧开水自动提示的水壶,然后你把两壶水坐上之后,自己打游戏去了,烧开水之后,水壶提示你水开了需要去处理了)
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值