第1章 并发与联网对象 1
1.1驱动因素 1
1.2并发与联网软件面临的挑战 4
1.2.1挑战1:服务访问与配置 6
1.2.2挑战2:事件处理 9
1.2.3挑战3:并发 11
1.2.4挑战4:同步 13
1.2.5联网软件的其他挑战 14
1.3案例研究:设计一个并发的Web服务器程序 16
1.3.1 JAWS框架概况 17
1.3.2使用模式解决JAWS中常见的设计挑战 18
1.3.3封装底层的操作系统API 19
1.3.4将事件分离与连接管理同协议处理分离 20
1.3.5通过多线程按比例提升服务器程序的性能 21
1.3.6实现同步请求队列 23
1.3.7最小化服务器程序的线程开销 24
1.3.8有效利用异步I/O 25
1.3.9增强服务器程序的可配置性 27
1.3.10其他用于实现JAWS的模式 28
1.4小结 29
第2章 服务访问和配置模式 31
2.1 Wrapper Facade 32
2.2 Component Configurator 51
2.3 Interceptor 73
2.4 Extension Interface 95
第3章 事件处理模式 119
3.1 Reactor 120
3.2 Proactor 146
3.3 Asynchronous Completion Token 178
3.4 Acceptor-Connector 195
第4章 同步模式 223
4.1 Scoped Locking 224
4.2 Strategized Locking 230
4.3 Thread-Safe Interface 238
4.4 Double-Checked Locking Optimization 244
第5章 并发模式 253
5.1 Active Object模式 254
5.2 Monitor Object模式 275
5.3 Half-Sync/Half-Async模式 292
5.4 Leader/Followers模式 306
5.5 Thread-Specific Storage模式 324
第6章 模式的综合运用 345
6.1从单个模式到模式语言 345
6.1.1没有模式是一座孤岛 345
6.1.2模式语言的形成 347
6.2面向中间件和应用程序的模式语言 348
6.2.1模式语言的细节 348
6.2.2模式语言之我见 355
6.3并发与联网之余 356
6.3.1图形用户接口 356
6.3.2组件 357
6.3.3通用编程 357
6.4模式语言与模式系统 358
第7章 模式的过去、现在及未来 361
7.1过去四年中模式的发展 361
7.1.1模式 361
7.1.2模式系统和模式语言 362
7.1.3方法和工具 363
7.1.4算法和数据结构 363
7.1.5模式的形式化 363
7.2模式的发展现状 364
7.3模式的未来发展趋势 365
7.3.1模式 365
7.3.2模式语言 367
7.3.3经验报告、方法与工具 368
7.3.4模式文档 368
7.3.5模式与模式语言的形式化 369
7.3.6软件开发流程与组织 369
7.3.7教育 369
7.3.8我们的长期愿景 370
7.4关于预测未来的最后一点想法 370
第8章 结束语 372
8.1术语表 373
8.2符号 385
8.2.1类-职责-协作者卡片 385
8.2.2 UML类图 385
8.2.3 UML时序图 386
8.2.4 UML状态图 388
参考文献 390
索引 414