內容簡介
本書詳細講述windows並發編程的相關知識。內容分為四個部分:第一部分“概念”從高層視角介紹並發的基本概念,為讀者理解並發打下基礎;第二部分“機制”重點介紹了一些基礎的功能、內部工作機制以及各種api等;第三部分“技術”介紹了一些常見的編程模式、最優方法、算法,以及在編寫並發軟體時需要使用的各種數據結構;第四部分“系統”介紹了一些在系統架構和流程中經常出現的問題。
本書內容翔實,實例豐富,適合windows開發人員、windows測試人員和windows技術支持人員等參考。
本書詳盡地介紹了如何在開發軟體時高效地使用並發和硬體並行,以及如何設計、實現和維護大型的、主要以windows平台上的c#和c++等語言編寫的並發程式。
本書為應用程式、系統以及庫等的開發人員在多核處理器上編寫高效、安全的代碼提供必要的工具和技術指導。這不僅對於那些存在內在並發性的領域(如伺服器套用、計算密集的圖像處理、金融分析、數值模擬以及ai算法等)來說是很重要的,而且對於一些可以通過並行來獲得加速的領域(如數學庫、排序算法、報告生成、xml處理以及流式處理算法等)來說同樣是重要的。
本書主要包括四部分:第一部分從高層視角介紹並發的一些基本概念;第二部分重點介紹一些重要的平台功能、內部工作機制以及api細節等;第三部分介紹在編寫並發軟體時一些常見的編程模式、最優方法、算法和數據結構等;第四部分介紹在編寫並發程式時需要注意的一些系統性的架構和流程方面的問題。
要想學習在windows和.net上進行並發編程的最優方法和通用模式,那么本書將是你唯一需要的一本書。
作者簡介
Joe Duffy是Microsoft公司.net框架團隊中並行擴展功能的技術主管、架構師以及奠基者,就職於Visual Studio部門。除了編寫代碼和管理開發團隊外,他還為團隊定下了遠景目標和長期策略。他當前的研究領域包括:函式式編程(Functional Programming)、類型系統中的並發安全性,以及開發一些編程模型來充分利用GPU和SIMD等處理器。Joe還是並行Parallel LINQ(PLINQ)的開發者,以及在通用語言運行時(CLR)中負責並發功能的程式經理。在加入Microsoft之前,他擁有7年的職業編程經歷,包括在EMC工作了四年。
目錄
對本書的讚譽
譯者序
序
前言
致謝
作者簡介
第一部分 概 念
第 1 章 概述1
1.1 為什麼需要並發1
1.2 程式架構與並發2
1.3 並行的層次4
1.4 為什麼不需要並發5
1.5 小結5
延伸閱讀6
第 2 章 同步與時間7
2.1 程式狀態的管理7
2.1.1 共享狀態與私有狀態的區分8
2.1.2 狀態機與時間11
2.1.3 獨立性17
2.1.4 不變性19