【IO基础知识】同步、异步、阻塞、非阻塞分析

同步、异步、阻塞、非阻塞

基础概念

上面的四个关键字为与IO操作相关的两组概念。下面分别进行说明:

同步/异步的概念指消息的通知机制,是从发送端而言的

同步:

一个任务的完成情况可以直接得到。该任务的操作过程中不可以执行其他任务。

异步:

一个任务的完成情况不可以直接得到,需要后续等待操作系统通知。该任务的操作过程中可以执行其他任务。

阻塞/非阻塞的概念指消息的调用方式,是从接收端而言的。

阻塞:

调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能执行其他操作。

非阻塞:

调用结果返回之前,该函数不会阻塞当前线程,而会立刻返回,但想要得到这些结果需要不停地进行询问。
非阻塞的方式可以明显的提高CPU的利用率,但也带来了系统的线程切换增加。需要权衡增加的CPU执行时间与系统的切换成本。

同步与异步的底层区别

同步通信的底层实现方式是轮询
异步通信底层的实现方式是中断
下面举例说明:
一个计算机系统中,CPU与外部设备的通信分为同步异步两种,CPU的外设种类很多,串口、鼠标、键盘一类的慢速设备,与CPU的运行速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值