加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

NIO与BIO的区别、NIO的运行道理和并发行使场景

发布时间:2018-09-20 22:47:08 所属栏目:业界 来源:今日头条
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 NIO(Non-blocking I/O,在Java规模,也称为New I/O),是一种同步非阻塞的I/O模子,也是I/O多路复用的基本,已经被越来越多地应用到大型应用处事器,成为办理高并发与大量毗连、I/O处理赏罚题目的有用方法。 那

以socket.read()为例子:

  • 传统的BIO内里socket.read(),假如TCP RecvBuffer里没稀有据,函数会一向阻塞,直到收到数据,返回读到的数据。
  • 对付NIO,假如TCP RecvBuffer稀有据,就把数据从网卡读到内存,而且返回给用户;反之则直接返回0,永久不会阻塞。
  • 最新的AIO(Async I/O)内里会更进一步:不单守候停当长短阻塞的,就连数据从网卡到内存的进程也是异步的。
  • 换句话说,BIO里用户最体谅“我要读”,NIO里用户最体谅"我可以读了",在AIO模子里用户更必要存眷的是“读完了”。
  • NIO一个重要的特点是:socket首要的读、写、注册和吸取函数,在守候停当阶段都长短阻塞的,真正的I/O操纵是同步阻塞的(耗损CPU但机能很是高)。

2.怎样团结变乱模子行使NIO同步非阻塞特征

下面详细看下怎样操作变乱模子单线程处理赏罚全部I/O哀求:

NIO的首要变乱有几个:

  • 读停当
  • 写停当
  • 有新毗连到来

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读