| 作 者: | Cameron Hughes Tracey Hughes 肖和平 张杰良 肖和平 |
| 出版社: | 中国电力出版社 |
| 丛编项: | 深入C++系列 |
| 版权说明: | 本书为公共版权或经版权方授权,请支持正版图书 |
| 标 签: | C++ |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
第1章 并发编程的乐趣 1
1.1 什么是并发? 1
1.2 并行编程的优点 3
1.3 分布式编程的优点 5
1.4 最少的工作需求 6
1.5 软件并发的基本层次 7
1.6 C++中没有支持并行性的关键字 8
1.7 并行和分布式编程的编程环境 11
小结——关于并发 11
第2章 并行和分布式编程的挑战 12
2.1 范例转移 12
2.2 协调问题 14
2.3 间或的硬件失效与软件退出 18
2.4 过多的并行化或分布式可能产生负面后果 18
2.5 选择一种好的体系结构需要进行研究 19
2.6 对不同测试和调试技术的需求 19
2.7 在并行或分布式设计中必须进行交流 20
小结 21
第3章 将C++程序分成多个任务 22
3.1 进程的定义 22
3.2 进程剖析 24
3.3 进程状态 26
3.4 进程调度 28
3.5 上下文切换 33
3.6 创建进程 34
3.7 终止进程 46
3.8 进程资源 48
3.9 什么是异步进程和同步进程 52
3.10 将程序分成多个任务 55
小结 63
第4章 将C++程序分成多个线程 64
4.1 线程的定义 64
4.2 线程剖析 69
4.3 线程调度 71
4.4 线程资源 75
4.5 线程模型 76
4.6 Pthread库介绍 80
4.7 简单多线程程序剖析 81
4.8 创建线程 83
4.9 管理线程 90
4.10 线程安全和线程库 111
4.11 将程序分解成多个线程 113
小结 122
第5章 任务间并发的同步 124
5.1 执行顺序的协调 124
5.2 同步数据访问 127
5.3 什么是信号量? 129
5.4 面向对象的同步方法 144
小结 144
第6章 通过PVM为C++增加并行编程能力 145
6.1 PVM支持的经典并行模型 145
6.2 为C++语言提供的PVM库 146
6.3 PVM的基本机制 162
6.4 在PVM任务中访问标准输入(stdin)和标准输出(stdout) 170
小结 171
第7章 错误处理、异常和软件可靠性 172
7.1 什么是软件可靠性? 173
7.2 软件层和硬件组件中的失效 174
7.3 依赖于软件规范的缺陷定义 175
7.4 考虑在哪里处理缺陷与在哪里处理异常 175
7.5 软件可靠性:一个简单方案 177
7.6 在错误处理中使用Map对象 178
7.7 C++的异常处理机制 181
7.8 事件图、逻辑表达式和逻辑图 186
小结 188
第8章 C++分布式面向对象编程 189
8.1 工作的分解与封装 190
8.2 访问其他地址空间中的对象 193
8.3 基本CORBA消费者剖析 202
8.4 CORBA生产者剖析 204
8.5 CORBA应用程序的基本设计蓝图 205
8.6 名字服务 209
8.7 深入了解对象适配器 217
8.8 实现池与接口池 218
8.9 使用CORBA的简单分布式Web服务 219
8.10 交易服务 220
8.11 客户/服务器范例 222
小结 223
第9章 MPI与使用模板的SPMD和MPMD模型 224
9.1 MPI的工作分解结构 225
9.2 使用模板函数表示MPI任务 229
9.3 简化MPI通信 237
小结 242
第10章 可视化并发和分布式系统设计 244
10.1 可视化结构 245
10.2 可视化并发行为 257
10.3 可视化整个系统 271
小结 274
第11章 设计支持并发的组件 275
11.1 使用接口类 276
11.2 深入了解面向对象的互斥和接口类 281
11.3 保持流隐喻 287
11.4 与PVM流协同工作的自定义类的设计 292
11.5 把面向对象的管道和fifo作为低级构建块 294
11.6 支持并发的框架类组件 312
小结 315
第12章 实现面向agent的体系结构 317
12.1 什么是agent? 317
12.2 什么是面向agent编程? 321
12.3 基本agent组件 324
12.4 用C++实现agent 329
12.5 多agent系统 344
小结 344
第13章 使用PVM、线程和C++组件的黑板体系结构 345
13.1 黑板模型 345
13.2 构造黑板的方法 347
13.3 知识库剖析 349
13.4 黑板的控制策略 349
13.5 使用CORBA对象实现黑板 351
13.6 使用全局对象实现黑板 365
13.7 使用Pthread激活知识库 367
小结 369
附录A 371
附录B 380