這是一本論述多處理器編程理論與實踐的綜合巨著!
看這本書的讀者應具備一定的離散數學基礎知識,能夠理解“大O”符號的含義,以及它在NP完全問題中所起的作用;熟悉計算機系統的基本組成部件,如處理器、線程、高速緩存等;為了能夠理解書中的實例,還需要具備初步的Java知識(在使用這些高級程序設計語言之前,闡述了語言的相關功能特征)。書中提供兩處附錄以供讀者參考:附錄A包含程序設計語言的相關知識,附錄B給出了多處理器體系結構的相關內容。
圖書的前三分之一,講述并發程序設計原理,介紹并發程序設計人員的一般編程思路。就像掌握汽車駕駛、烹飪和品嘗魚子醬一樣,并發思維需要培養,需要適當的努力才能學好。對于那些希望立刻動手編程的讀者可以跳過這一部分的大多數內容,但需要閱讀第2章及第3章的內容,因為這兩章包含了理解本書其他部分必不可少的基本知識。首先,討論了經典的互斥問題(第2章),提到了諸如公正和死鎖這樣的基本概念,這對于理解并發程序設計的難點尤為重要。隨后,結合并發執行和并發設計中可能出現的情形和開發環境,提出了并發程序正確性的定義(第3章);研究了對并發計算至關重要的共享存儲器的性質(第4章);介紹了幾種為獲得高并發性數據結構而使用的同步原語(第5、6章)。
對于每一位渴望真正掌握多處理器編程技術的程序設計人員來說,花上一定的時間去解決本書第一部分所提及的問題是很必要的。……