C primer plus 读书笔记第十四章】的更多相关文章

这一章主要介绍C语言的结构和其他数据形式,是学习算法和数据结构的重点. 1.示例代码 /*book.c -- 仅包含一本书的图书目录*/ #include <stdio.h> #define MAXTITL 41 #define MAXAUTL 31 struct book { /* data */ char title[MAXTITL]; char author[MAXAUTL]; float value; }; int main(void) { struct book library; /…
信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并拥有对资源独占式的访问权. 临界区:真正执行数据更新的代码需要独占式的执行,它们被称为临界区域:它们通常只在一个大型程序中占据一小段的代码. 信号量是一个特殊的变量,它只取正整数值,并且程序对其访问都是原子操作:只允许对它进行等待和发送信号这两种操作. 在Linux编程中,等待和发送信号都已具有特殊…
C的强大功能之一在于它允许我们控制程序的细节.C的内存管理系统正是这种控制能力的例子.它通过让我们决定哪些函数知道哪些变量以及一个变量在程序中存在多长时间来实现这些控制. 1.存储类及其说明符 主要的定义:作用域.链接以及存储时间.其他编程语言也有类似的概念.C语言通过这三个概念定义了5中存储类.其说明符分别为auto.register.static.extern和typedef. 2.存储类和函数 函数也分为外部的和静态的.关键字是extern和static.默认情况下是外部的. 3.mall…
最近太忙,居然过了2个月才更新第十四章.... 主要内容: 块设备简介 内核访问块设备的方法 内核I/O调度程序 1. 块设备简介 I/O设备主要有2类: 字符设备:只能顺序读写设备中的内容,比如 串口设备,键盘 块设备:能够随机读写设备中的内容,比如 硬盘,U盘 字符设备由于只能顺序访问,所以应用场景也不多,这篇文章主要讨论块设备. 块设备是随机访问的,所以块设备在不同的应用场景中存在很大的优化空间. 块设备中最重要的一个概念就是块设备的最小寻址单元. 块设备的最小寻址单元就是扇区,扇区的大小…
第十四章.迭代器模式 迭代器模式,又叫做游标模式.是行为型设计模式之中的一个.我们知道对容器对象的訪问必定会涉及遍历算法.我们能够将遍历的方法封装在容器中,或者不提供遍历方法,让使用容器的人自己去实现去吧. 这两种情况好像都能够解决这个问题. 然而在前一种情况.容器承受了过多的功能.它不仅要负责自己"容器"内的元素维护(加入.删除等等),并且还要提供遍历自身的接口:并且因为遍历状态保存的问题,不能对同一个容器对象同一时候进行多个遍历.另外一种方式倒是省事,却又将容器的内部细节暴露无遗.…
第十四章 C++中的代码重用 包含对象成员的类 将类的对象作为新类的成员.称为has-a关系.使用公有继承的时候,类可以继承接口,可能还有实现(纯虚函数不提供实现,只提供接口).使用包含时,可以获得实现,但是不能获得接口. explicit关键字的用法: 防止单参数构造函数的隐式转换,例如定义了如下的构造函数: Student::Student(const string &s, int n); Student::Student(int n); 使用如下的定义: Student st("T…
接上篇<android开发艺术探索>读书笔记(十三)--综合技术 No1: Java JNI--Java Native Interface(java本地接口),它是为了方便java调用C.C++等本地代码锁封装的一层接口. No2: NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便的通过JNI来访问本地代码,比如C或者C++. NDK还提供了交叉编译器,开发人员只需要简单的修改mk文件就可以生成特定CPU平台的动态库. No3: 使用NDK有如下好处: 1)…
第四章 子查询:在外部查询内嵌套的内部查询(按照期望值的数量分为,标量子查询 scalar subqueries,多值子查询multivalued subqueries)(按照子查询对外部查询的依赖性分为独立子查询self-contained subqueries和相关子查询 correlated subqueries) 应用一:关系分区问题,使用group by和distinct count 来解决关系分区问题 Eg:NorthWind返回每个美国员工至少为其处理过一个订单的所有客户 独立子查…
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果. 4.1 多任务 1.多任务操作系统就是能同时并发地交互执行多个进程的操作系统.无论在单处理或者多处理器机器上,多任务操作系统都能使多个进程处于拥塞或者睡眠状态,也就是实际上不被投入执行,直到工作确实就绪. 2.多任务系统可以划分为两类:非抢占式多任务和抢占…
第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称. -m 输出虚拟机进程启动时传递给主类的main函数的参数 -l 输出主类全名,如果进程执行的时jar包,输出Java路径    -v 输出虚拟机进程启动的jvm参数,显示指定的参数列表,默认参数无法查看 jstat命令: 作用:…