[Linux] 典型IO

典型IO

IO:即input、output-----输入输出

IO的过程:1. 等待IO就绪;2. 进行数据拷贝

阻塞IO

阻塞IO:发起IO调用,如果IO未就绪,就一直等待

在这里插入图片描述

优点:流程比较简单
缺点:效率很低,资源浪费严重

非阻塞IO

非阻塞IO:发起IO调用,如果IO未就绪,立即报错返回;等待一段时间后再次发起IO调用

在这里插入图片描述

优点:效率相较于阻塞IO有所提高
缺点:需要循环操作,不够实时

信号驱动IO

信号驱动IO:自定义IO信号处理,等到IO就绪-----收到信号,打断当前操作,执行自定义的IO信号处理流程
在这里插入图片描述

优点:效率更高、实时性更强
缺点:操作流程更为复杂,需要自定义信号的处理

异步IO

异步IO:自定义IO信号处理,发起IO调用,调用立即返回,让系统完成IO,完成后通过信号通知

在这里插入图片描述

优点:资源利用率极高,效率极高
缺点:流程最复杂

阻塞与非阻塞的区别

阻塞:为了完成一个功能,发起一个调用,若完成该功能的条件不具备,则一直等待,直到条件完备。

非阻塞:发起一个调用,若完成该功能的条件不具备,立即报错返回。

通常用于描述某个接口的特性,区分该接口调用后是否能立即返回。

同步和异步的区别

此处的同步和异步不同于多线程和多进程中的同步和异步。

同步:一个功能完成后,才能进行下一个操作,如果不能完成则一直等待。
异步:发起一个调用,让别人来完成具体功能,不需要等待前面的操作。

同步和异步的外部区别就是:功能是否由自己完成,同步是自己完成,异步是由别人完成。

同步和异步通常用于描述某一功能的完成流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值