同步IO和异步IO

3 篇文章 0 订阅
2 篇文章 0 订阅

    今天面试被问到这个问题,之前看书有看到,但是书上讲的不够清楚,也没记住,所以这次认真查了资料,在这做记录,好好记住它。
    首先,我们要知道一个事情,在执行read操作时,会经历2个阶段:
    1.等待数据准备
    2.将数据从内核拷贝到进程中
    其实就是一个就绪事件,阻塞IO和非阻塞IO大家应该都很熟悉,它们的区别就在于第一步,非阻塞IO不会阻塞第一步,但是第二步还是会阻塞的。所以,阻塞IO,非阻塞IO,IO复用(select/poll/epoll)都是同步IO(这几个的概念这里就不再描述了,上面参考文章有详细的解释)。
    异步IO是什么呢,就是上面的2个步骤全部交给内核去完成,然后最后得到内核通知一个完成事件,这是真正的非阻塞,这就是2者的区别。
    总结起来,其实就是同步IO收到的是就绪事件(第一步完成),异步IO收到的是完成事件(第二步完成)。目前我接触过IO还都是同步IO模型,等我接触到异步IO模型后我会再做记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值