Linux下的五种I/O模型、同步与异步、阻塞与非阻塞

Linux下的五种I/O模型:https://www.cnblogs.com/chy2055/p/5220793.html
同步与异步区别在于内核是否会主动通知应用程序相应操作已完成
阻塞与非阻塞的区别在于应用程序发出请求后是否只等待内核该操作的响应而不去干别的事,还是无论是否有结果都立刻返回

例如:同步非阻塞I/O,应用程序虽不阻塞,但仍需要通过轮询的方式询问内核操作是否完成(对应I/O复用中的select和poll)因为是自己主动干的, 所以叫同步,与异步相对应

操作系统主动发起, 就是异步;
大概两种办法, 一个是回调, 执行这个回调的线程是操作系统自己创建的, 不是你创建的; 所以你发起 IO 后就可以不管了, 反正完成后会有一个不需要你创建的线程调用你的回调函数;
另外一个能主动调用的貌似只有一个信号机制了;

同步与阻塞的理解:
阻塞是一种工作模式,可以用来实现同步。

https://m.newsmth.net/article/LinuxDev/69511?p=1

关于阻塞的理解:
阻塞是如何实现的?其本质是否是无限循环?https://www.zhihu.com/question/391359472
https://www.cnblogs.com/yougewe/p/9751501.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值