設計模式:NET並行編程

設計模式:NET並行編程

《設計模式:NET並行編程》結合大量的項目實踐,介紹了與並行編程相關的概念、方法和套用。《設計模式:NET並行編程》共7章:第1章主要介紹並行編程的基本概念與並行計算的基礎理論,第2章主要介紹並行循環的知識,第3章介紹並行任務處理,第4章闡述並行合併計算的機理,第5章介紹future模式,第6章在前文的基礎上深入探討動態並行任務機制,第7章介紹並行編程的流水線機制。

基本介紹

  • 書名:設計模式:NET並行編程
  • 作者:Colin Cambell Ralph Johnson
  • 出版日期:2012年4月1日
  • 語種:簡體中文
  • ISBN:9787302279976
  • 外文名:Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures
  • 出版社:清華大學出版社
  • 頁數:214頁
  • 開本:16
  • 品牌:清華大學出版社
基本介紹,內容簡介,作者簡介,圖書目錄,

基本介紹

內容簡介

《設計模式:NET並行編程》內容豐富,幾乎涵蓋了並行編程的各個方面。一方面,本書既有對並行計算理論的基礎原理及架構的闡述,也有對動態任務並行機制以及流水線技術的深入探討,更重要的是本書每一章都有豐富的實例及示例代碼,這有助於讀者深入了解其原理與套用。另一方面,本書並非只是一本純理論的書籍,因此真正善於學習的讀者,應該適當地完成一些“課後練習”。對本書示例進行自我學習和探索,我相信您能夠從本書獲得寶貴經驗。《設計模式:NET並行編程》適用於在.NET Framework上編寫託管代碼的程式設計師,包括在Visual C#、Visual Basic以及Visual F#上編寫代碼的程式設計師。

作者簡介

作者:(美)Colin Campbell Ralph Johnson Ade Miller Stephen Toub 譯者:曹澤文 鄒雪梅 李岸

Colin Campbell是Model—Based Software Testing and Analysis in C#的合著者之一,他發表過數篇有關軟體分析的論文。他是西雅圖的Modeled Computation LLC的創始人和負責人。
Ralph Johnson是伊利諾伊大學的研究副教授。他是Design Patterns的四個合著者之一,並且是開發了第一個自動重構工具Smalltalk Refactoring Browser的項目組的組長。近幾年來,他一直致力於記載並行編程的模式。
Ade Miller是微軟的patterns & practices組的主力開發,他在這裡管理了數個敏捷團隊,這些團隊為微軟的客戶提供項目上的實用指導。他的首要興趣在於並行計算和敏捷軟體開發實踐。
Stephen Toub在微軟的並行計算平台團隊中工作。他致力於為.NET和Visual Studio設計和開發下—代並發和並行編程模型。

圖書目錄

第1章 導論
1.1 潛在並行性的重要性
1.2 分解、協調和可擴展共享
1.2.1 了解任務
1.2.2 協調任務
1.2.3 數據的可擴展共享
1.2.4 設計方法
1.3 選擇恰當的模式
1.4 關於術語
1.5 並行性的極限
1.6 一些技巧
1.7 練習
1.8 擴展閱讀
第2章 並行循環
2.1 基礎知識
2.1.1 並行for循環
2.1.2 並行foreach循環
2.1.3 並行linq(plinq)
2.1.4 預期
2.2 示例
2.2.1 信貸審查的順序版本示例
2.2.2 使用parallel.foreach的信貸審查示例
2.2.3 plinq信貸審查示例
2.2.4 性能比較
2.3 變化形式
2.3.1 儘早中斷循環
2.3.2 外部循環取消
2.3.3 異常處理
2.3.4 小循環體的特殊處理
2.3.5 控制並行度
2.3.6 在循環體中使用局部任務狀態
2.3.7 對並行循環使用自定義的任務調度程式
2.4 反模式
2.4.1 步長不為一
2.4.2 隱藏的循環體依賴
2.4.3 少量疊代的小循環體
2.4.4 處理器的超額申請和申請不足
2.4.5 混合parallel類和plinq
2.4.6 輸入枚舉中的重複
2.5 設計說明
2.5.1 自適應分區
2.5.2 自適應並發
2.5.3 支持嵌套循環和伺服器應用程式
2.6 相關模式
2.7 練習
2.8 擴展閱讀
第3章 並行任務
3.1 基礎知識
3.2 示例
3.3 變化形式
3.3.1 取消任務
3.3.2 處理異常
3.3.3 等待第一個任務完成
3.3.4 推測執行
3.3.5 使用自定義的調度方式創建任務
3.4 反模式
3.4.1 閉包捕獲的變數
3.4.2 清理任務所需要的資源
3.4.3 避免撤銷執行緒
3.5 設計說明
3.5.1 任務和執行緒
3.5.2 任務生命周期
3.5.3 編寫自定義的任務調度程式
3.5.4 未觀測到的任務異常
3.5.5 數據並行性和任務並行性之間的關係
3.6 默認任務調度程式
3.6.1 執行緒池
3.6.2 分散管理的調度技術
3.6.3 workstealing策略
3.6.4 全局佇列中的頂層任務
3.6.5 局部佇列中的子任務
3.6.6 子任務的內聯執行
3.6.7 執行緒注入
3.6.8 繞過執行緒池
3.7 練習
3.8 擴展閱讀
第4章 並行合併計算
4.1 基礎知識
4.2 示例
4.3 變化形式
4.3.1 使用並行循環進行合併計算
4.3.2 使用範圍分割器進行合併計算
4.3.3 使用帶有範圍選擇的plinq合併計算
4.4 設計說明
4.5 相關的模式
4.6 練習
4.7 擴展閱讀
第5章 future模式
5.1 基礎知識
5.1.1 future
5.1.2 延續任務
5.2 示例:adatum金融儀錶板
5.2.1 業務對象
5.2.2 分析引擎
5.2.3 視圖和視圖模型
5.3 變化形式
5.3.1 取消future和延續任務
5.3.2 擁有多個先行任務的情況
5.3.3 使用.net異步調用和future
5.3.4 消除瓶頸
5.3.5 運行時修改圖
5.4 設計說明
5.4.1 分解成future和延續任務
5.4.2 函式式風格
5.5 相關的模式
5.5.1 流水線模式
5.5.2 主/從(master/worker)模式
5.5.3 動態任務並行模式
5.5.4 離散事件模式
5.6 練習
5.7 擴展閱讀
第6章 動態任務並行
6.1 基礎
6.2 示例
6.3 變化形式
6.3.1 while-not-empty並行
6.3.2 任務鏈與父子任務
6.4 設計說明
6.5 練習
6.6 擴展閱讀
第7章 流水線
7.1 基礎
7.2 示例
7.2.1 順序圖像處理
7.2.2 圖像流水線
7.2.3 運行特性
7.3 變化形式
7.3.1 取消流水線
7.3.2 處理流水線異常
7.3.3 利用多個生產者實現負載平衡
7.3.4 流水線和流
7.3.5 異步流水線
7.4 反模式
7.4.1 執行緒飢餓
7.4.2 阻塞集合無窮等待
7.4.3 忘記getconsumingenumerable()方法
7.4.4 採用其他生產者/消費者集合
7.5 設計說明
7.6 相關模式
7.7 練習
7.8 擴展閱讀
附錄a 改寫面向對象模式
附錄b 調試和分析並行應用程式
附錄c 技術概覽
術語表
參考文獻
  

相關詞條

熱門詞條

聯絡我們