Chapter 14
[size=medium]
1、永远阻塞的调用有哪些?
阻塞,直到函数调用完成为止,否则一直等待。
2、标志位操作
[url]http://xserver.iteye.com/blog/784840[/url]
set_fl clr_fl
3、轮询(polling)。主动。内核不断尝试,是否能进行I/O
使用了非阻塞,程序不断调用write,但是又没有数据,造成浪费。
异步I/O(asynchronous I/O)。被动。通知内核进行I/O
[url]http://www.groad.net/bbs/simple/?t950.html[/url]
4、线程在I/O调用中阻塞,但线程间同步的开销有可能增加复杂性,可能导致得不偿失。
5、读锁、写锁、局部锁(记录锁,record locking,更适合的术语byte-range locking)
5.2 锁的继承与释放(多进程 与 单进程效果不同)
p.s 不能测试自己加的锁。只会返回F_UNLCK :cry:
[url]http://blog.chinaunix.net/u/30503/showart_2327622.html[/url]
[url]http://www.linuxdiyf.com/bbs/redirect.php?tid=84178&goto=lastpost[/url]
6、STREAMS
7、I/O多路转接(I/O multiplexing)[/size]
#include <sys/select.h>int select(int maxfdpl, fd_set *restrict readfds, // 可读 fd_set *restrict writefd, // 可写 fd_set *restrict exceptfds, // 异常 struct timeval *restrict tvptr); // 等待的时间
// restrict是c99引入的,它只可以用于限定指针,并表明指针是访问一个数据对象的唯一且初始的方式
#include <poll.h>int poll(struct pollfd fdarray[], nfds_t nfds, int timeout);
#include <sys/uio.h> // 散布读(scatter read)聚集写(gather write)ssize_t readv(int filedes, const struct iovec *iov, int iovcnt);ssize_t writev(int filedes, const struct iovec *iov, int iovcnt);
[size=medium]
8、存储映射I/O
[/size]
Chapter 14相关推荐
- halcon算子盘点:Chapter 13:对象、Chapter 14 区域
Chapter 13:Object 13.1 Information 1. count_obj 功能:统计一个元组中的对象. 2. get_channel_info 功能:一幅目标图像组成部分的信 ...
- Chapter 14 Greenplum PL/R Language Extension
Chapter 14 Greenplum PL/RLanguage Extension This chaptercontains the following information: • Abo ...
- 14版计算机专业英语,Chapter 14 Virtual Reality 《计算机专业英语》电子教案.ppt
Chapter 14 Virtual Reality <计算机专业英语>电子教案 Computer English Chapter 14 Virtual Reality *计算机专业英语 ...
- python对象模型映射_【500 Lines or Less】-【翻译练习】-【chapter 14】-【简单对象模型】-【第一部分】...
date: 2017-10-08 15:31:46 Carl Friedrich Bolz是伦敦国王大学的研究员,对动态语言的实现及优化兴趣浓厚.他是 PyPy/RPython 的核心贡献者之一,并为 ...
- Chapter 14: Overloaded Operations And Conversions
Exercises Section 14.1 Ex14.1 不同点:重载操作符必须至少有一个类类型或枚举类型的操作数:重载操作符不保证操作数的求值顺序. 相同点:有相同的优先级和结合性,操作数的数目不 ...
- Chapter 14 Exercises Problems
转载于:https://www.cnblogs.com/momoko/p/4937730.html
- 学习总结-《父与子的编程之旅》chapter 14
本章主要讲对象. 此篇往后 先只附上代码示例,内容之后有空再来填补. 示例: class Hot_dog:def __init__(self):self.cooked_level = 0self.co ...
- c++ primer 第14章 习题解答
14.1节 14.1答 不同点: 重载操作符必须具有至少一个class或枚举类型的操作数. 重载操作符不保证操作数的求值顺序,例如对&&和| | 的重载版本不再具有"短路求值 ...
- 数据挖掘与分析课程笔记(Chapter 7)
数据挖掘与分析课程笔记 参考教材:Data Mining and Analysis : MOHAMMED J.ZAKI, WAGNER MEIRA JR. 文章目录 数据挖掘与分析课程笔记(目录) 数 ...
最新文章
- 分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
- C# 中的Async 和 Await 的用法详解
- 推理成本降低48倍!1张GPU就能让静态图像动起来 | 格拉兹科技大学Facebook
- iOS RunLoop简介
- html range关联文本框,HTML5gt;meter标签与input(type=range)标签结合制作简易范围指示器...
- 4.MyBatis全局配置文件SqlMapConfig.xml
- 服务器销售税率,转销售云服务器税率
- 楼层效果_1一28高楼最好最吉利的楼层是哪层?选楼层要注意什么?
- tpm php,TPM系列
- Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
- java ajax多文件上传插件_ajaxFileUpload.js插件支持多文件上传的方法
- Mybatis 单独项目
- Cocos2d Box2D之简介
- 在LoadRunner中查找和替换字符串
- 商业计划书范文3000_项目融资商业计划书模板范文PPT
- 让Visio2007/2003支持UML2.2
- 数学建模评价类方法01——灵敏度分析
- 英文之妙语连珠超级94句
- 川大《计算机应用基础》第二次作业,川大16秋《计算机应用基础》第二次作业答案.pdf...
- 腾讯视频网页版无法连接服务器失败怎么办,腾讯视频突然不能投屏怎么解决 腾讯视频突然不能投屏解决方法...