對本書的贊譽
譯著序
序
前言
緻謝
作者簡介
第一部分 概念
第1章 概述
1.1 為什麼需要並發
1.2 程序架構與並發
1.3 並行的層次
1.4 為什麼不需要並發
1.5 小結
延伸閱讀
第2章 同步與時間
2.1 程序狀態的管理
2.1.1 共享狀態與私有狀態的區分
2.1.2 狀態機與時間
2.1.3 獨立性
2.1.4 不變性
2.2 同步:種類與實現技術
2.2.1 數據同步
2.2.2 協作與控製同步
2.3 小結
延伸閱讀
第二部分 機製
第3章 綫程
3.1 從高層麵上來看綫程
3.1.1 Windows綫程是什麼
3.1.2 CLR綫程是什麼
3.1.3 顯式綫程操作及其替代方法
3.2 綫程的誕生與消亡
3.2.1 綫程的創建
3.2.2 綫程終止
3.2.3 DllMain
3.2.4 綫程局部存儲
3.3 小結
延伸閱讀
第4章 綫程的高級內容
4.1 綫程的狀態
4.1.1 用戶態綫程棧
4.1.2 內部數據結構(KTHREAD、ETHREAD和TEB)
4.1.3 上下文
4.2 綫程的創建過程與終止過程
4.2.1 綫程創建的具體流程
4.2.2 綫程終止的具體流程
4.3 綫程調度
4.3.1 綫程的狀態
4.3.2 優先級
4.3.3 時間片
4.3.4 優先級與時間片調整
4.3.5 睡眠與退讓
4.3.6 掛起
4.3.7 關聯性:優先在某個CPU上運行
4.4 小結
延伸閱讀
第5章 Windows內核同步機製
5.1 基礎知識:觸發和等待
5.1.1 為什麼要使用內核對象
5.1.2 在非托管代碼中執行等待操作
5.1.3 托管代碼
5.1.4 異步過程調用
5.2 內核對象的使用
5.2.1 互斥體
5.2.2 信號量
5.2.3 互斥體/信號量使用示例:阻塞/有界的隊列
5.2.4 自動重置事件和手動重置事件
5.2.5 等待定時器
5.2.6 觸發對象與自動等待
5.2.7 內核對象的調試
5.3 小結
延伸閱讀
第6章 數據同步與控製同步
6.1 互斥
6.1.1 Win32臨界區
6.1.2 CLR鎖
6.2 讀/寫鎖(RWL)
6.2.1 WindowsVista中的輕量級讀/寫鎖
6.2.2.NEI框架中的輕量級讀/寫鎖
6.2.3.NET框架中原來的讀/寫鎖
6.3 條件變量
6.3.1 WindowsVista條件變量
6.3.2.NET框架的Monitor
6.3.3 被守護區域
6.4 小結
延伸閱讀
第7章 綫程池
7.1 綫程池的基本知識
7.1.1 三種方式:WindowsVista、Windows遺留代碼以及CLR
7.1.2 通用功能
7.2 Windows綫程池
7.2.1 WindowsVista綫程池
7.2.2 遺留的Win32綫程池
7.3 CLR綫程池
7.3.1 工作項
7.3.2 I/O完成端口
7.3.3 定時器
7.3.4 注冊等待
7.3.5 記住(再次提醒):你並不擁有這些綫程
7.3.6 綫程池的綫程管理
7.3.7 調試
7.3.8 案例分析:優先級分層以及在綫程池之上的隔離性
7.4 在使用綫程池時的性能
7.5 小結
延伸閱讀
第8章 異步編程模型
8.1 異步編程模型(APM)
8.1.1 匯集:四種方式
8.1.2 實現IAsyncResult
8.1.3 在.NET框架的哪些地方使用瞭APM
8.1.4 ASP.NET異步頁
8.2 基於事件的異步模式
8.2.1 基礎知識
8.2.2 支持取消
8.2.3 支持進度報告以及增量結果
8.2.4 在.NET框架的哪些地方將使用EAP
8.3 小結
延伸閱讀
第9章 縴程
9.1 縴程簡介優點與缺點
9.2 縴程的使用
9.2.1 創建新的縴程
9.2.2 將綫程轉換為縴程
9.2.3 判斷綫程是否為縴程
9.2.4 縴程間的切換
9.2.5 刪除縴程
9.2.6 切換當前綫程的示例
9.3 與縴程相關的其他主題
9.3.1 縴程局部存儲
9.3.2 綫程關聯性
9.3.3 案例分析:縴程與CLR
9.4 構建用戶態的調度器
9.4.1 實現
9.4.2 關於棧阻塞與無棧阻塞
9.5 小結
延伸閱讀
第三部分 技術
第10章 內存模型與無鎖編程
10.1 內存加載與存儲等操作的重新排序
10.1.1 實際運行的順序並非總是編寫的順序
10.1.2 將臨界域作為柵欄
10.1.3 數據依賴性及其對重排的影響
10.2 硬件原子性
10.2.1 普通加載指令和存儲指令的原子性
10.2.2 互鎖操作
10.3 內存一緻性模型
10.3.1 硬件內存模型
10.3.2 內存柵欄
10.3.3.NET內存模型
10.3.4 無鎖編程
10.4 低鎖代碼的示例
10.4.1 延遲初始化與雙重檢查鎖定
10.4.2 無阻塞棧和ABA問題
10.4.3 重新迴顧Dekker的算法
10.5 小結
延伸閱讀
第11章 並發的危害
11.1 正確性危害
11.1.1 數據競爭
11.1.2 遞歸與重入
11.1.3 鎖與進程關閉
11.2 活躍性危害
11.2.1 死鎖
11.2.2 遺失的喚醒
11.2.3 活鎖
11.2.4 鎖護送效應
11.2.5 “蜂擁”現象
11.2.6 兩步舞
11.2.7 優先級反轉與飢餓
11.3 小結
延伸閱讀
第12章 並行容器
12.1 細粒度鎖定
12.1.1 數組
12.1.2 FIFO隊列
12.1.3 鏈錶
12.1.4 字典(散列錶)
12.2 無鎖
12.2.1 無鎖FIFO隊列
12.2.2 工作密遷隊列
12.3 協作式容器
12.3.1 生産者/消費者數據結構
12.3.2 通過柵欄來分階段計算
12.4 小結
延伸閱讀
第13章 數據並行與任務並行
13.1 數據並行
13.2 任務並行
13.2.1 分支/閤並算法
13.2.2 數據流並行(Future抽象與Promise抽象)
13.2.3 遞歸
13.2.4 流水綫
13.2.5 查找
13.3 基於消息的並行
13.4 一些共同問題
13.4.1 並發的異常
13.4.2 取消
13.5 小結
延伸閱讀
第14章 性能與可伸縮性
14.1 並行硬件架構
14.1.1 SMP、CMP與HT
14.1.2 超標量執行
14.1.3 內存的層次結構
14.1.4 Visual Studio中的性能分析工具
14.2 加速比:並行代碼與串行代碼
14.2.1 決定“采用並行”
14.2.2 測量並行帶來的性能提升
14.2.3 Amdahl定律
12.2.4 關鍵路徑以及負載不均衡
14.2.5 垃圾收集與可伸縮性
14.3 自鏇等待
14.3.1 如何在Windows上正確地自鏇
14.3.2 純自鏇鎖
14.3.3 Mellor-Crummey-Scott(MCS)鎖
14.4 小結
延伸閱讀
第四部分 係統
第15章 輸入與輸齣
15.1 重疊I/O
15.1.1 重疊對象
15.1.2 Win32異步:I/O
15.1.3 .NET框架的異步I/O
15.2 I/O取消
15.2.1 當前綫程的異步I/O取消
15.2.2 其他綫程上的同步I/O取消
15.2.3 任意綫程的異步I/O取消
15.3 小結
延伸閱讀
第16章 圖形用戶界麵
16.1 GUI綫程模型
16.1.1 單綫程套間(STA)
16.1.2 響應度:它是什麼
16.2.NET異步GUI功能
16.2.1.NET的GUI框架
16.2.2 同步上下文
16.2.3 異步操作
16.2.4 一個方便的類:BackgroundWorker
16.3 小結
延伸閱讀
第五部分 附錄
附錄A 為.NET並發程序設計可重用的庫
附錄B .NET的並行擴展
· · · · · · (
收起)
評分
☆☆☆☆☆
很不錯的書,隻是沒有最新版。
評分
☆☆☆☆☆
文字很多,但是內容並不是很豐富
評分
☆☆☆☆☆
對於技術書籍,我早就不信任翻譯版瞭。隻因為沒有影印版買,纔抱著一點點小幻想,把它買下,想應該可以勉強看下去。但是還是看不下去,錯誤太多。不過還好找到瞭英文掃描版。買瞭這本,充當買瞭版權吧。
評分
☆☆☆☆☆
內容5星, 隻是印刷錯誤不少, 翻譯也有待商榷, 有些疑難地方, 反復推敲, 實驗都沒能搞懂, 可惜沒有原文對照, 隻能按自己的思路理解
評分
☆☆☆☆☆
China-Pub購買本書,居然發現China-Pub上承諾58送書,好書都送完瞭,轉戰dangdang買下瞭此書. 正如網友反映書中的錯字很多. 有些地方的翻譯也不是很完美, 前後根本不知道啥意思, 可能本人理解能力減退瞭吧. 不過書的內容確認還算不錯.
評分
☆☆☆☆☆
評分
☆☆☆☆☆
相信对这本书感兴趣的人,技术水平都不是很差,E文至少也是中等水平,所以推荐大家去看原版,中文版的翻译实在是不敢恭维,排版错误太多,正文内容也有相当多的内容值得推敲,译者并未对这本书采取很认真负责的态度,若是译者对这个领域不熟悉,那便是出版社的责任了,引进了这...
評分
☆☆☆☆☆
評分
☆☆☆☆☆
原版的勘误列表,译者没有修正 第二章,作者给出了10个勘误列表 1. 原书P41,INC,EAX,这之间没有逗号,看看译文,逗号仍然在; 2. 原书P41,T2(0) => T2(E),译者也没改,这会对读者造成多大的费解; 3. 原书P43, "static int a;" => "static int s_a;" ,翻译...
評分
☆☆☆☆☆