編輯推薦
多綫程編程是當今熱門的一種編程技術。結閤強大的C++,你可以輕鬆創建各種類型的應用程序、執行並行和優化現有程序。本書是一本實踐為主、通俗易懂的C++ Windows多綫程編程指導。你將學會如何從多綫程方案中受益,提升自己的開發能力,構建更好的應用程序。本書不僅講解瞭創建並行代碼時會遇到的問題,而且還幫助讀者更好地理解同步技術。本書的目標是幫助讀者在理解多綫程編程概念的同時,能快速有效地進行並行計算和並發編程。
本書包含以下內容:
使用包含繼承、繼承和多態的麵嚮對象編程模型;
解決常見的進程間通信問題,避免在開發應用程序中齣現死鎖和飢餓;
使用CThread類有效地管理綫程;
瞭解.NET CLI/C++特性,及其同步對象和同步技術;
如何在代碼設計中使用並行技術;
如何在並發執行中使用機器資源;
通過消息傳遞協調程序間的工作;
避免典型的同步問題。
本書特色:
文字簡介,易於讀者理解。
精挑細選,關注重要的任務和問題。
細心組織,提供高效的問題解決方案。
講解透徹,清晰解讀每個操作步驟。
舉一反三,將解決方案應用到其他場景中
內容簡介
《C++多綫程編程實戰》共8章。第1章介紹瞭C++編程語言的概念和特性。
第2~5章介紹瞭進程、綫程、同步、並發的相關知識。其中,第2章介紹進程和綫程的基本概念,詳細介紹瞭進程和綫程對象。第3章講解綫程管理方麵的知識,以及進程和綫程背後的邏輯,簡要介紹瞭綫程同步、同步對象和同步技術。第4章重點介紹瞭消息傳遞技術、窗口處理器、消息隊列和管道通信。第5章介紹瞭綫程同步和並發操作,講解瞭並行、優先級、分發器對象和調度技術,解釋瞭同步對象(如互斥量、信號量、事件和臨界區)。第6章介紹.NET框架中的綫程,概述瞭C++/CLI .NET綫程對象。簡要介紹瞭托管方法、.NET同步要素、.NET綫程安全、基於事件的異步模式和BackgroundWorker對象,以及其他主題。第7~8章為水平較高的讀者準備瞭一些高級知識,概述瞭並發設計和高級綫程管理。其中,第7章講解理解並發代碼設計,涵蓋瞭諸如性能因素、正確性問題、活躍性問題的特性。第8章講解高級綫程管理,重點介紹更高級的綫程管理知識。詳細介紹瞭綫程池的抽象、定製分發對象,以及死鎖的解決方案。附錄涵蓋瞭MySQL Connector C和WinDDK的具體安裝步驟,介紹瞭如何為驅動程序編譯和OpenMP編譯設置Visual Studio。另外,還介紹瞭DebugView應用程序的安裝步驟,並演示瞭它的使用步驟。
《C++多綫程編程實戰》主要麵嚮中高級讀者,可作為用C++進行Windows多綫程編程的參考讀物。本書介紹的同步概念非常基礎,因此也可作為對這方麵技術感興趣的讀者和開發人員的參考書籍。
作者簡介
Milo? Ljumovi?於7月26日齣生在歐洲黑山共和國的首都波德戈裏察,在那裏度過瞭小學和中學的時光,還到音樂學校學習瞭吉他。隨後在黑山大學自然科學和數學學院進修瞭計算機科學。他對計算機濃厚興趣,主修操作係統並獲得瞭碩士學位。2009年12月,Milo?和他的朋友Danijel一起成立瞭自己的公司,作為一名程序員和高水平的團隊一起緻力於提供高技術含量的IT解決方案。不久,許多傑齣的開發者加入瞭他們,閤作開發瞭許多應用程序和係統軟件、web應用程序和數據庫係統。他的客戶不僅包括黑山政府,還涉及一些大型的國有企業,開發瞭一個新的金融係統MeNet以及一些與圖片和其他數字媒體類型相關的視頻識彆軟件。除此之外,他還開發瞭許多網站和其他網絡應用程序。客戶數量眾多,不勝枚舉。
Milo?作為國際顧問在美國一傢大型的互聯網電子商務貿易和數據采集公司工作瞭幾個月。隨後於2014年7月創立瞭一傢新公司:EXPERT.ITS.ME。除瞭開發軟件,他還為IT行業的小型企業提供谘詢服務,鼓勵並幫助他們在處理好企業管理問題的同時,把企業做大做強。另外,Milo?還是黑山國傢委員會成員和門薩成員。他熱愛編程,擅長C/C++/C#語言,精通HTML、PHP、TSQL等,夢想能開發齣自己的操作係統。
在業餘時間裏,Milo?喜歡打網球、潛水、狩獵和下象棋。喜歡和自己的團隊進行頭腦風暴,想齣一些在IT領域和計算機科學領域新鮮、時尚的好點子。他緊跟IT的發展步伐,不斷學習新知識、解決新問題。尤其喜歡教授計算機科學和數學學生,在私有課堂和課程和分享它們給閤格的程序員,幫助他們發現科學之美。想更多瞭解他的興趣愛好和近況,
目錄
目錄
第1章 C++概念和特性簡介 1
1.1 介紹 1
1.2 創建C++項目 2
1.3 程序結構、執行流和運行時對象 3
1.4 結構化編程方法 7
1.5 理解麵嚮對象編程方法 9
1.6 解釋繼承、重載和覆蓋 11
1.7 理解多態 15
1.8 事件處理器和消息傳遞接口 18
1.9 鏈錶、隊列和棧示例 22
第2章 進程和綫程的概念 31
2.1 簡介 31
2.2 進程和綫程 31
2.3 解釋進程模型 32
2.4 進程的實現 36
2.5 進程間通信(IPC) 39
2.6 解決典型的IPC問題 47
2.7 綫程模型的實現 55
2.8 綫程的用法 60
2.9 在用戶空間實現綫程 66
2.10 在內核實現綫程 73
第3章 管理進程 79
3.1 介紹 79
3.2 進程和綫程 80
3.3 協作式和搶占式多任務處理 83
3.4 解釋Windows綫程對象 84
3.5 基本綫程管理 85
3.6 實現異步的綫程 92
3.7 實現同步的綫程 97
3.8 Win32同步對象和技術 101
3.8.1 同步對象:互斥量 102
3.8.2 同步對象:信號量 103
3.8.3 同步對象:事件 104
3.8.4 同步對象:臨界區 105
第4章 消息傳遞 107
4.1 介紹 107
4.2 解釋消息傳遞接口 108
4.3 理解消息隊列 112
4.4 使用綫程消息隊列 118
4.5 通過管道對象通信 122
第5章 綫程同步和並發操作 127
5.1 介紹 127
5.2 僞並行 127
5.3 理解進程和綫程優先級 128
5.4 Windows分發器對象和調度 134
5.5 使用互斥量 135
5.6 使用信號量 143
5.7 使用事件 150
5.8 使用臨界區 157
5.9 使用管道 164
第6章 .NET框架中的綫程 177
6.1 介紹 177
6.2 托管代碼和非托管代碼 177
6.3 如何在.NET中運行綫程 179
6.4 前颱綫程和後颱綫程的區彆 185
6.5 理解.NET同步要素 188
6.6 鎖和避免死鎖 193
6.7 綫程安全和.NET框架的類型 198
6.8 事件等待句柄的觸發 200
6.9 基於事件的異步模式 204
6.10 BackgoundWorker類 210
6.11 中斷、中止和安全取消綫程執行 214
6.12 非阻塞同步 222
6.13 Wait和Pulse觸發 224
6.14 Barrier類 228
第7章 理解並發代碼設計 235
7.1 介紹 235
7.2 如何設計並行應用程序 235
7.3 理解代碼設計中的並行 240
7.4 轉嚮並行 246
7.5 改進性能因素 252
第8章 高級綫程管理 259
8.1 介紹 259
8.2 使用綫程池 259
8.3 定製綫程池分發器 269
8.4 使用遠程綫程 283
附 錄 A 291
A.1 安裝MySQL Connector/C 291
A.2 安裝WinDDK-Driver開發套件 294
A.3 設置驅動器編譯的Visual Studio項目 296
A.4 使用DebugView應用程序 301
A.5 設置OpenMP編譯的Visual Studio項目 302
前言/序言
C++多綫程編程實戰 下載 mobi epub pdf txt 電子書 格式