在linux或者java层面存在NIO饿概念,请问如果从磁盘IO模型层面如何来理解NIO呢?

在linux或者java层面存在NIO饿概念,请问如果从磁盘IO模型层面如何来理解NIO呢?

参与5

2 同行回答

yangjianxv yangjianxv 部门总经理 成方金融科技有限公司
你说的java层面的NIO,是与BIO、AIO对应的概念BIO,同步阻塞式IO,一个连接对应一个线程NIO,同步非阻塞IO,一个请求有一个线程处理,但多个请求可以由一个线程处理。同步式的IO,应用的线程做read write这样的操作,需要等操作系统(OS是应用和底层硬件的中介)完成之后,才能返回。AIO,异步非...显示全部

你说的java层面的NIO,是与BIO、AIO对应的概念

BIO,同步阻塞式IO,一个连接对应一个线程

NIO,同步非阻塞IO,一个请求有一个线程处理,但多个请求可以由一个线程处理。

同步式的IO,应用的线程做read write这样的操作,需要等操作系统(OS是应用和底层硬件的中介)完成之后,才能返回。

AIO,异步非阻塞IO,一个有效请求一个线程,多个请求可以由一个线程处理,IO不需要阻塞式的等待,而是有操作系统做完了read write这样的操作后通知应用“我已经做完了”。在此期间,应用可以去干别的事情,增强了处理效率,可以充分利用CPU资源。

操作系统层面一般提的是AIO,默认也都是AIO的模式。

收起
银行 · 2017-04-25
浏览1368

提问者

bryan
bryan 0 5 14
软件架构设计师 金融研发
擅长领域: 云计算容器容器云
评论518

问题来自

问题状态

  • 发布时间:2017-04-25
  • 关注会员:3 人
  • 问题浏览:3796
  • 最近回答:2017-04-25
  • X社区推广