第1章 C++概念和特性简介 1
1.1 介绍 1
1.2 创建C++项目 2
1.3 程序结构、执行流和运行时对象 3
1.4 结构化编程方法 7
1.5 理解面向对象编程方法 9
1.6 解释继承、重载和覆盖 11
1.7 理解多态 15
1.8 事件处理器和消息传递接口 18
1.9 链表、队列和栈示例 22
第2章 进程和线程的概念 31
2.1 简介 31
2.2 进程和线程 31
2.3 解释进程模型 32
2.4 进程的实现 36
2.5 进程间通信(IPC) 39
2.6 解决典型的IPC问题 47
2.7 线程模型的实现 55
2.8 线程的用法 60
2.9 在用户空间实现线程 66
2.10 在内核实现线程 73
第3章 管理进程 79
3.1 介绍 79
3.2 进程和线程 80
3.3 协作式和抢占式多任务处理 83
3.4 解释Windows线程对象 84
3.5 基本线程管理 85
3.6 实现异步的线程 92
3.7 实现同步的线程 97
3.8 Win32同步对象和技术 101
3.8.1 同步对象:互斥量 102
3.8.2 同步对象:信号量 103
3.8.3 同步对象:事件 104
3.8.4 同步对象:临界区 105
第4章 消息传递 107
4.1 介绍 107
4.2 解释消息传递接口 108
4.3 理解消息队列 112
4.4 使用线程消息队列 118
4.5 通过管道对象通信 122
第5章 线程同步和并发操作 127
5.1 介绍 127
5.2 伪并行 127
5.3 理解进程和线程优先级 128
5.4 Windows分发器对象和调度 134
5.5 使用互斥量 135
5.6 使用信号量 143
5.7 使用事件 150
5.8 使用临界区 157
5.9 使用管道 164
第6章 .NET框架中的线程 177
6.1 介绍 177
6.2 托管代码和非托管代码 177
6.3 如何在.NET中运行线程 179
6.4 前台线程和后台线程的区别 185
6.5 理解.NET同步要素 188
6.6 锁和避免死锁 193
6.7 线程安全和.NET框架的类型 198
6.8 事件等待句柄的触发 200
6.9 基于事件的异步模式 204
6.10 BackgoundWorker类 210
6.11 中断、中止和安全取消线程执行 214
6.12 非阻塞同步 222
6.13 Wait和Pulse触发 224
6.14 Barrier类 228
第7章 理解并发代码设计 235
7.1 介绍 235
7.2 如何设计并行应用程序 235
7.3 理解代码设计中的并行 240
7.4 转向并行 246
7.5 改进性能因素 252
第8章 高级线程管理 259
8.1 介绍 259
8.2 使用线程池 259
8.3 定制线程池分发器 269
8.4 使用远程线程 283
附录A 291
A.1 安装MySQL Connector/C 291
A.2 安装WinDDK-Driver开发套件 294
A.3 设置驱动器编译的Visual Studio项目 296
A.4 使用DebugView应用程序 301
A.5 设置OpenMP编译的Visual Studio项目 302