socketpair(双向通信)--高级IO

本文介绍了五种IO模型,重点讨论了高级IO,包括非阻塞IO、I/O多路转接和readv/writev等,并详细讲解了如何使用socketpair创建用于进程间双向通信的管道,通过代码实现和结果展示来阐述其工作原理。
摘要由CSDN通过智能技术生成

一、五种IO模型

1、 阻塞I/O

(eg:钓鱼者(王一)只钓鱼,不和任何人说话,也不干任何其他的事)

2、非阻塞I/O

(eg:钓鱼者(王二)一边钓鱼,一边问王一到底钓了多少鱼,但是王一并没有回答他,但他还是会一边钓他的鱼一边重复的问王一)

3、 信号驱动I/O(SIGIO)

(eg:钓鱼者(王三)他在自己的鱼竿上绑了一个铃铛(相当于一个信号),然后去旁边看手机去了,当铃铛响后,它会把鱼钓上来)

4、 I/O复用(select poll和e poll)

(eg:钓鱼者(王四)他拉了一车鱼竿来钓鱼,同时看着这么多鱼竿)(多路转接)

5、异步I/O(Posix.1的aio_系列函数(aio_read))

(eg:钓鱼者(王五),让自己的司机去钓鱼,然后自己去做别的事情了,并让司机把鱼钓好之后给他放到指定位置并给他打电话然后他把鱼领走)

1、在大部分场景下,若出现性能问题首先考虑是否出现I/O异常
2、在网络当中进行I/O读写时,I/O的读写条件不一定就绪(读写成功依赖于读写条件)
3、站在用户的角度,I/O分两步完成(a、等事件就绪 b、真正的处理数据I/O)
4、I/O性能的瓶颈主要是在等待上花费了太多时间,
5、为了能提高I/O性能,应该改善等的比重(尽可能缩短等的时间)

二、什么是高级IO

  1. 非阻塞IO
  2. 记录锁
  3. 系统V流机制
  4. I/O多路转接(select/poll)
  5. readv和writev函数以及存储映射IO&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值