內容簡介
為瞭創建這樣的應用程序,你需要學習如何在程序中有效地使用多個CPU核心。如果你使用的是Microsoft.NET開發平颱以及C#編程語言,那麼本書將是一個編寫高性能、高響應性的應用程序的完美起點。本書的目的是給你提供C#中多綫程以及並行編程的詳盡指導。我們將從基本概念開始,每章主題比前一章都有所拔高,後展示瞭現實世界中的並行編程模式以及Windows商店應用示例。
目錄
譯者序
前 言
第1章 綫程基礎1
1.1 簡介1
1.2 使用C#創建綫程2
1.2.1 準備工作2
1.2.2 實現方式2
1.2.3 工作原理4
1.3 暫停綫程4
1.3.1 準備工作5
1.3.2 實現方式5
1.3.3 工作原理5
1.4 綫程等待6
1.4.1 準備工作6
1.4.2 實現方式6
1.4.3 工作原理7
1.5 終止綫程7
1.5.1 準備工作7
1.5.2 實現方式7
1.5.3 工作原理8
1.6 檢測綫程狀態8
1.6.1 準備工作8
1.6.2 實現方式8
1.6.3 工作原理9
1.7 綫程優先級10
1.7.1 準備工作10
1.7.2 實現方式10
1.7.3 工作原理12
1.8 前颱綫程和後颱綫程12
1.8.1 準備工作12
1.8.2 實現方式12
1.8.3 工作原理13
1.9 嚮綫程傳遞參數14
1.9.1 準備工作14
1.9.2 實現方式14
1.9.3 工作原理16
1.9.4 更多信息16
1.10 使用C#中的lock關鍵字16
1.10.1 準備工作16
1.10.2 實現方式16
1.10.3 工作原理18
1.11 使用Monitor類鎖定資源19
1.11.1 準備工作19
1.11.2 實現方式19
1.11.3 工作原理21
1.12 處理異常21
1.12.1 準備工作21
1.12.2 實現方式22
1.12.3 工作原理23
第2章 綫程同步24
2.1 簡介24
2.2 執行基本的原子操作25
2.2.1 準備工作25
2.2.2 實現方式25
2.2.3 工作原理27
2.3 使用Mutex類28
2.3.1 準備工作28
2.3.2 實現方式28
2.3.3 工作原理29
2.4 使用SemaphoreSlim類29
2.4.1 準備工作29
2.4.2 實現方式29
2.4.3 工作原理30
2.4.4 更多信息30
2.5 使用AutoResetEvent類31
2.5.1 準備工作31
2.5.2 實現方式31
2.5.3 工作原理32
2.6 使用ManualResetEventSlim類32
2.6.1 準備工作32
2.6.2 實現方式33
2.6.3 工作原理34
2.6.4 更多信息34
2.7 使用CountDownEvent類34
2.7.1 準備工作34
2.7.2 實現方式34
2.7.3 工作原理35
2.8 使用Barrier類35
2.8.1 準備工作35
2.8.2 實現方式36
2.8.3 工作原理36
2.9 使用ReaderWriterLockSlim類37
2.9.1 準備工作37
2.9.2 實現方式37
2.9.3 工作原理39
2.10 使用SpinWait類39
2.10.1 準備工作39
2.10.2 實現方式39
2.10.3 工作原理41
第3章 使用綫程池42
3.1 簡介42
3.2 在綫程池中調用委托43
3.2.1 準備工作44
3.2.2 實現方式44
3.2.3 工作原理45
3.3 嚮綫程池中放入異步操作46
3.3.1 準備工作46
3.3.2 實現方式46
3.3.3 工作原理47
3.4 綫程池與並行度48
3.4.1 準備工作48
3.4.2 實現方式48
3.4.3 工作原理49
3.5 實現一個取消選項50
3.5.1 準備工作50
3.5.2 實現方式50
3.5.3 工作原理52
3.6 在綫程池中使用等待事件處理器及超時52
3.6.1 準備工作52
3.6.2 實現方式52
3.6.3 工作原理54
3.6.4 更多信息54
3.7 使用計時器54
3.7.1 準備工作55
3.7.2 實現方式55
3.7.3 工作原理56
3.8 使用BackgroundWorker組件56
3.8.1 準備工作56
3.8.2 實現方式56
3.8.3 工作原理58
第4章 使用任務並行庫60
4.1 簡介60
4.2 創建任務61
4.2.1 準備工作62
4.2.2 實現方式62
4.2.3 工作原理63
4.3 使用任務執行基本的操作63
4.3.1 準備工作64
4.3.2 實現方式64
4.3.3 工作原理65
4.4 組閤任務65
4.4.1 準備工作65
4.4.2 實現方式65
4.4.3 工作原理67
4.5 將APM模式轉換為任務68
4.5.1 準備工作68
4.5.2 實現方式68
4.5.3 工作原理70
4.6 將EAP模式轉換為任務71
4.6.1 準備工作71
4.6.2 實現方式71
4.6.3 工作原理72
4.7 實現取消選項73
4.7.1 準備工作73
4.7.2 實現方式73
4.7.3 工作原理74
4.8 處理任務中的異常75
4.8.1 準備工作75
4.8.2 實現方式75
4.8.3 工作原理76
4.8.4 更多信息77
4.9 並行運行任務77
4.9.1 準備工作77
4.9.2 實現方式77
4.9.3 工作原理78
4.10 使用TaskScheduler配置任務的執行79
4.10.1 準備工作79
4.10.2 實現方式79
4.10.3 工作原理81
第5章 使用C# 6.083
5.1 簡介83
5.2 使用await操作符獲取異步任務結果85
5.2.1 準備工作85
5.2.2 實現方式85
5.2.3 工作原理87
5.3 在lambda錶達式中使用await操作符87
5.3.1 準備工作87
5.3.2 實現方式87
5.3.3 工作原理88
5.4 對連續的異步任務使用await操作符89
5.4.1 準備工作89
5.4.2 實現方式89
5.4.3 工作原理90
5.5 對並行執行的異步任務使用await操作符91
5.5.1 準備工作91
5.5.2 實現方式91
5.5.3 工作原理92
5.6 處理異步操作中的異常93
5.6.1 準備工作93
5.6.2 實現方式93
5.6.3 工作原理95
5.7 避免使用捕獲的同步上下文95
5.7.1 準備工作95
5.7.2 實現方式96
5.7.3 工作原理98
5.8 使用async void方法99
5.8.1 準備工作99
5.8.2 實現方式99
5.8.3 工作原理101
5.9 設計一個自定義的awaitable類型102
5.9.1 準備工作102
5.9.2 實現方式102
5.9.3 工作原理104
5.10 對動態類型使用await105
5.10.1 準備工作105
5.10.2 實現方式105
5.10.
前言/序言
不久前,典型的個人計算機的CPU還隻有一個計算核心,並且功耗足以煎熟雞蛋。2005年,英特爾推齣瞭其首款多核心CPU,從此計算機開始嚮不同的方嚮發展。低耗電量及多個計算核心變得比提高行計算(row computing)的核心性能更重要。這也導緻瞭編程範式的改變。現在我們需要學習如何有效地使用所有CPU核心來最優化性能,並同時通過在特定時間隻運行需要的程序來節省電池電量。除此之外,我們在編寫服務器端應用程序時需要有效地利用多個CPU核心,甚至多颱計算機來支持盡可能多的用戶。
為瞭創建這樣的應用程序,你需要學習如何在程序中有效地使用多個CPU核心。如果你使用的是Microsoft .NET開發平颱以及C#編程語言,那麼本書將是一個編寫高性能、高響應性的應用程序的完美起點。
本書的目的是給你提供C#中多綫程以及並行編程的詳盡指導。我們將從基本概念開始,每章主題比前一章都有所拔高,最後展示現實世界中的並行編程模式以及通用Windows應用和跨平颱應用示例。
本書內容第1章介紹瞭C#中基本的綫程操作。本章解釋瞭什麼是綫程,使用綫程的優缺點,以及與綫程相關的其他重要方麵。
第2章描述瞭綫程交互細節。你將瞭解為何我們需要協調綫程,以及協調組織綫程的不同方式。
第3章解釋瞭綫程池概念。本章展示瞭如何使用綫程池,如何執行異步操作,以及使用綫程池的好的和不好的實踐。
第4章深入講解瞭任務並行庫(Task Parallel Library,TPL)框架。本章講述瞭TPL的所有重要方麵,包括任務組閤、異常管理及取消操作等。
第5章深入解釋瞭最近引入的C#特性——異步方法。你將瞭解async和await關鍵字,如何在不同的場景中使用它們,以及await的底層工作機製。
第6章描述瞭.NET框架中並行算法的標準數據結構,並為每種數據結構展示瞭示例編程場景。
第7章深入講解瞭並行LINQ基礎設施。本章講述瞭任務和數據並行度、並行化LINQ查詢、調整並行選項、分割查詢和集閤並行查詢結果等內容。
第8章解釋瞭如何以及何時使用Reactive Extensions框架。你將學習如何組閤事件,如何對事件序列執行LINQ查詢等。
第9章深入講解瞭異步I/O進程,包括文件、網絡及數據庫等場景。
第10章列齣瞭針對常見的並行編程問題的解決方案。
第11章講述瞭為Windows10、OS X,以及Linux編寫異步應用程序。你將學習如何使用Windows 10異步API,以及如何在Windows商店應用中完成後颱工作。你也會熟悉跨平颱的.NET開發工具和組件。
準備事項我們需要Microsoft Visual Studio社區版2015來完成大多數章節的學習。在第11章中,對於OS X和Linux可能需要Visual Studio Code編輯器,當然你也可以使用任何你熟悉的編輯工具。
讀者對象本書的讀者對象為沒有或隻有少量多綫程及異步和並發編程背景的C#開發人員。本書涵蓋瞭C#和.NET生態係統中從基礎概念到復雜編程模式及算法的很多與多綫程相關的主題。
下載示例代碼本書的示例代碼可登錄華章網站中的本書頁麵下載。
C#多綫程編程實戰(原書第2版) epub pdf mobi txt 電子書 下載 2024
C#多綫程編程實戰(原書第2版) 下載 epub mobi pdf txt 電子書