ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

玩转BIO,NIO,AIO,阻塞 同步 与IO多路复用

2021-08-10 13:33:54  阅读:197  来源: 互联网

标签:BIO 同步 操作系统 阻塞 AIO 调用 IO 执行 NIO


1.啥是IO?

2.讲明白同步和阻塞俩概念

3.啥是IO多路复用,操作系统层的演进

4.对比BIO,NIO,AIO

 

四步玩转IO

 

1.啥是IO

计算机核心三大功能:  Input  计算  OutPut

IO重要吧 没有IO计算机变成玩具,

那IO又可分为几种 常用的,磁盘IO  网络IO  

闭眼睛想 如果IO不给力,计算机运算能力再牛逼 会不会影响整体效率的,非常影响

从底层磁盘看IO:  啥是磁盘IO

 

2. 同步与阻塞

同步与异步,指的是API,接口,服务调用等层面的概念。

同步指的是一步一步来,上一步执行完 返回结果 才能执行下一步, 异步指的是 不需要等上一步执行完返回结果,就能执行下一步。

举个简单的例子就是 java线程池, 把具体的任务丢到线程池里就不管了,主线程可以继续干别的事了,不需要阻塞在那等任务执行完,线程池主要的目的也是为了完成异步。

通常异步的执行可以通过回调接口来获取执行结果,如FutureTask,可以获取到异步执行的情况

 

阻塞与非阻塞,指的是底层操作系统IO层面的概念。

阻塞指的是 进程调用操作系统执行IO,IO执行完成之前,进程会一直阻塞在那等待,直到IO完成获取到返回结果

非阻塞指的是 进程调用操作系统执行IO,IO没有完成会直接返回失败结果,进程循环去调用直到IO完成,或者IO完成后操作系统回调接口来通知进程拿数据。总而言之 进程不需要在那一动不动的阻塞住等IO  这就是非阻塞。

现在区别开同步和阻塞,一个是应用接口调用层面,一个是底层操作系统IO层面,两者的思想很相近

 

 

3.啥是IO多路复用,操作系统层的演进

 

 

 

4.对比BIO,NIO与AIO

BIO: 也称同步阻塞IO,顾名思义 应用调用层是同步的,操作系统层是阻塞的。 可以参考java InputStream流,当read磁盘数据时,read()方法会阻塞在那,而底层也会阻塞在那等待IO完成 

NIO: 也成同步非阻塞IO,应用调用层是同步的,操作系统层是非阻塞的。 非阻塞是由于从操作系统采用了IO多路复用,

 

标签:BIO,同步,操作系统,阻塞,AIO,调用,IO,执行,NIO
来源: https://www.cnblogs.com/ttaall/p/15123298.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有