第1章 C++組件簡介
1.1 既是好消息,也是壞消息
1.2 面向對象方法
1.3 面向對象架構
1.4 C++組件
1.5 面向對象軟件組件
1.5.1 什么是類
1.5.2 抽象數據類型
1.5.3 類作為模型
1.5.4 類類型
第2章 進程解剖
2.1 什么是進程
2.2 進程狀態(tài)
2.3 進程優(yōu)先權
2.4 上下文切換
2.5 進程關系
2.5.1 進程終止
2.5.2 同步和異步進程
2.6 進程映射
2.7 進程資源
2.7.1 硬件資源
2.7.2 數據資源
2.7.3 軟件資源
2.7.4 優(yōu)先權與資源
第3章 輕量級進程:線程
3.1 多線程處理
3.2 線程與進程的相似之處
3.3 線程與進程的不同之處
3.4 線程的優(yōu)點
3.5 線程的缺點
3.6 線程類型
3.6.1 休眠(sleeper)和單步(one-shot)
3.6.2 先占工作
3.6.3 延遲工作
3.7 線程相關信息
3.8 線程創(chuàng)建
3.8.1 誰可以終止線程
3.8.2 分離線程
3.8.3 遠程線程
3.9 線程堆棧
3.10 線程控制
3.10.1 臨界區(qū)
3.10.2 掛起和恢復線程
3.11 線程優(yōu)先權
3.12 線程狀態(tài)
3.13 線程與資源
3.14 線程的實現(xiàn)模型:用戶級線程
3.14.1 核心級線程
3.14.2 混合線程
第4章 多任務與多線程編程
4.1 什么是多任務編程
4.1.1 對話級多任務編程
4.1.2 進程級多任務編程
4.1.3 多線程編程
4.2 合作和搶占式多任務
4.2.1 合作多任務
4.2.2 搶占式多任務
4.2.3 時間片的大小
4.3 多處理器下的多線程
4.3.1 非對稱多處理器處理
4.3.2 對稱多處理器處理
4.3.3 具有多處理器的多線程處理模型
4.4 規(guī)劃策略
4.4.1 規(guī)劃策略目標
4.4.2 規(guī)劃策略準則
4.4.3 輪詢和FIFO規(guī)劃
4.4.4 最短任務優(yōu)先規(guī)劃法
4.4.5 最短剩余時間規(guī)劃法
第5章 進程間和線程間通信
5.1 依賴關系
5.1.1 通信依賴性
5.1.2 合作依賴性
5.1.3 計數線程與進程依賴性
5.2 進程間和線程間通信
5.2.1 什么是進程間通信
5.2.2 進程間通信類型
5.3 線程間通信
第6章 合作與同步
6.1 競爭條件
6.1.1 數據同步
6.1.2 硬件同步
6.1.3 任務同步
6.2 同步關系
6.3 進程同步機制
6.3.1 信號量提供鑰匙
6.3.2 信號量類型
6.3.3 自愿互斥量策略
6.3.4 使用互斥量鎖定防止競爭條件
6.3.5 臨界區(qū)
6.4 避免競爭條件
6.5 死鎖必需的條件
6.6 遠離死鎖
第7章 接口類與進程間通信
7.1 接口類詳解
7.1.1 接口類的類型
7.1.2 減小參數和全局變量的數量
7.2 C++沒有多線程處理的關鍵字
7.3 面向對象接口到管道
7.4 使用接口類來實現(xiàn)面向對象命名管道
7.4.1 相關客戶/服務器術語
7.4.2 名字包含哪些內容
7.4.3 命名管道和iostream復合
7.4.4 npstream接口類
7.4.5 命名管道與STL istream_iterator和ostream_iterator
第8章 同步對象
8.1 初識mutex類
8.1.1 命名互斥量類
8.1.2 同步和依賴性關系(示例)
8.1.3 表示條件的類
8.1.4 等待多個事件或互斥量
8.1.5 通過類成員函數鎖定和取消鎖定
8.1.6 小結
第9章 線程處理面向對象架構
9.1 什么是多線程架構
9.2 使用多線程的常見架構
9.2.1 文件服務器
9.2.2 數據庫服務器和事務服務器
9.2.3 應用服務器
9.2.4 事件驅動架構
9.3 黑板架構
9.4 途徑上的不同(面向對象與過程化)
9.4.1 封裝是關鍵(保護和數據隱藏)
9.4.2 類成員函數CREW策略
9.5 增量多線程處理
第10章 類層次和線程處理C++組件
10.1 抽象基類
10.2 具體類??理想終結者
10.2.1 多線程層次中的節(jié)點類
10.2.2 線程與容器和集合類
10.2.3 應用框架類
第11章 類行為和線程處理
11.1 線程、對象和作用域
11.1.1 連接與作用域
11.1.2 線程和類作用域
11.2 同步關系和對象成員函數
11.3 在多線程環(huán)境中構建和析構對象
11.3.1 exit()和abort()
11.3.2 構造函數和SS關系
11.3.3 析構函數與FF關系
11.3.4 線程集合與對象
11.3.5 線程與異常處理
11.4 線程安全函數
11.5 多線程環(huán)境中的不安全函數
11.6 在多線程架構中使用STL算法
第12章 測試多線程應用程序
12.1 軟件測試的目標
12.1.1 分而治之(divide and conquer)
12.1.2 軟件測試類型
12.1.3 對象的組件復合
12.1.4 成員函數訪問數據組件
12.1.5 成員函數正確性
12.1.6 對象的過渡狀態(tài)
12.1.7 成員函數調用序列
12.1.8 對象完整性
12.2 對象的測試實例
12.2.1 對象構建的測試實例
12.2.2 析構函數的測試實例
12.2.3 賦值的測試實例
12.2.4 對象派生子類
12.2.5 成員函數性能的測試實例
12.2.6 對象資源需求和測試實例
12.2.7 測試公有對象訪問、受保護對象訪問以及線程化對象訪問
12.3 測試多線程架構的問題
12.3.1 開放層次問題
12.3.2 規(guī)劃問題
12.4 使用常用模型和架構
第13章 實現(xiàn)并發(fā)的最后思考
附錄A POSIX線程管理規(guī)范
附錄B 類關系圖規(guī)范
附錄C POSIX線程管理函數
附錄D Win32線程管理函數
附錄E OS/2線程管理函數
附錄F 線程和同步類(POSIX, Win32以及OS/2)
參考文獻
索引