C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南

C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
威廉姆斯 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-25

類似圖書 點擊查看全場最低價


圖書介紹

店鋪: 慧榖圖書專營店
齣版社: 人民郵電齣版社
ISBN:9787115387325
商品編碼:12172549426
包裝:平裝
開本:16
齣版時間:2015-06-01


相關圖書





圖書描述




 

內容簡介

 

  《C++並發編程實戰》是一本基於C++11新標準的並發和多綫程編程深度指南。內容包括從std::thread、std::mutex、std::future和std::async等基礎類的使用,到內存模型和原子操作、基於鎖和鎖數據結構的構建,再擴展到並行算法、綫程管理,最後還介紹瞭多綫程代碼的測試工作。本書的附錄部分還對C++11新語言特性中與多綫程相關的項目進行瞭簡要的介紹,並提供瞭C++11綫程庫的完整參考。
  《C++並發編程實戰》適閤於需要深入瞭解C++多綫程開發的讀者,以及使用C++進行各類軟件開發的開發人員、測試人員。對於使用第三方綫程庫的讀者,也可以從本書後麵的章節中瞭解到相關的指引和技巧。同時,本書還可以作為C++11綫程庫的參考工具書。

作者簡介

 


  周全,軟件工程師,畢業於中國科學技術大學信息學院,現任職於中國人民銀行閤肥中心支行科技處。從事.NET開發多年,有較為豐富的係統集成和運維經驗,對虛擬化也有較深入的研究。可以通過email與他聯係。

  宋真真,網絡工程師,2008年畢業於閤肥工業大學計算機與信息學院,現任職於中國人民銀行閤肥中心支行科技處,參與軟件開發、項目管理等工作,愛好數據庫、編程等研究。可以通過email與她聯係。

  梁娟娟,2010年畢業於中國科學技術大學信息技術學院,現就職於中國人民銀行閤肥中心支行。

  許敏,軟件工程師,2005年獲得軟件測試工程師證書。現任職於中國人民銀行閤肥中心支行科技處,負責項目管理工作。可以通過Email與她聯係。

目錄

  

第1章 你好,C++並發世界 1 
1.1 什麼是並發 2 
1.1.1 計算機係統中的並發 2 
1.1.2 並發的途徑 3 
1.2 為什麼使用並發 5 
1.2.1 為瞭劃分關注點而使用 
並發 5 
1.2.2 為瞭性能而使用並發 6 
1.2.3 什麼時候不使用並發 7 
1.3 在C++中使用並發和 
多綫程 8 
1.3.1 C++多綫程曆程 8 
1.3.2 新標準中的並發支持 9 
1.3.3 C++綫程庫的效率 9 
1.3.4 平颱相關的工具 10 
1.4 開始入門 11 
1.5 小結 12 
第2章 管理綫程 13 
2.1 基本綫程管理 13 
2.1.1 啓動綫程 14 
2.1.2 等待綫程完成 16 
2.1.3 在異常環境下的等待 17 
2.1.4 在後颱運行綫程 19 
2.2 傳遞參數給綫程函數 20 
2.3 轉移綫程的所有權 23 
2.4 在運行時選擇綫程 
數量 26 
2.5 標識綫程 28 
2.6 小結 29 
第3章 在綫程間共享數據 31 
3.1 綫程之間共享數據的 
問題 32 
3.1.1 競爭條件 33 
3.1.2 避免有問題的競爭 
條件 34 
3.2 用互斥元保護共享 
數據 35 
3.2.1 使用C++中的互斥元 35 
3.2.2 為保護共享數據精心組織 
代碼 36 
3.2.3 發現接口中固有的競爭 
條件 38 
3.2.4 死鎖:問題和解決方案 44 
3.2.5 避免死鎖的進一步 
指南 46 
3.2.6 用std::unique_lock靈活 
鎖定 51 
3.2.7 在作用域之間轉移鎖的 
所有權 52 
3.2.8 鎖定在恰當的粒度 54 
3.3 用於共享數據保護的替代工具 56 
3.3.1 在初始化時保護共享 
數據 56 
3.3.2 保護很少更新的數據 
結構 59 
3.3.3 遞歸鎖 61 
3.4 小結 62 
第4章 同步並發操作 63 
4.1 等待事件或其他條件 63 
4.1.1 用條件變量等待條件 65 
4.1.2 使用條件變量建立一個 
綫程安全隊列 67 
4.2 使用future等待一次性 
事件 71 
4.2.1 從後颱任務中返迴值 72 
4.2.2 將任務與future相關聯 74 
4.2.3 生成(std::)promise 77 
4.2.4 為future保存異常 79 
4.2.5 等待自多個綫程 80 
4.3 有時間限製的等待 82 
4.3.1 時鍾 83 
4.3.2 時間段 84 
4.3.3 時間點 85 
4.3.4 接受超時的函數 86 
4.4 使用操作同步來簡化 
代碼 88 
4.4.1 帶有future的函數式 
編程 88 
4.4.2 具有消息傳遞的同步 
操作 92 
4.5 小結 96 
第5章 C++內存模型和原子 
類型上操作 97 
5.1 內存模型基礎 98 
5.1.1 對象和內存位置 98 
5.1.2 對象、內存位置以及 
並發 99 
5.1.3 修改順序 100 
5.2 C++中的原子操作及 
類型 100 
5.2.1 標準原子類型 101 
5.2.2 std::atomic_flag上的 
操作 103 
5.2.3 基於std::atomic的 
操作 105 
5.2.4 std::atomic上的操作:指針算術運算 107 
5.2.5 標準原子整型的 
操作 108 
5.2.6 std::atomic<>初級類 
模闆 109 
5.2.7 原子操作的自由函數 111 
5.3 同步操作和強製 
順序 112 
5.3.1 synchronizes-with 
關係 114 
5.3.2 happens-before關係 114 
5.3.3 原子操作的內存 
順序 116 
5.3.4 釋放序列和 
synchronizes-with 133 
5.3.5 屏障 135 
5.3.6 用原子操作排序非原子 
操作 137 
5.4 小結 138 
第6章 設計基於鎖的並發 
數據結構 140 
6.1 為並發設計的含義是 
什麼 141 
6.2 基於鎖的並發數據 
結構 142 
6.2.1 使用鎖的綫程 
安全棧 142 
6.2.2 使用鎖和條件變量的綫程 
安全隊列 145 
6.2.3 使用細粒度鎖和條件變量的綫程安全隊列 149 
6.3 設計更復雜的基於鎖的 
數據結構 160 
6.3.1 編寫一個使用鎖的綫程 
安全查找錶 160 
6.3.2 編寫一個使用鎖的綫程 
安全鏈錶 165 
6.4 小結 169 
第7章 設計鎖的並發數據 
結構 170 
7.1 定義和結果 171 
7.1.1 非阻塞數據結構的 
類型 171 
7.1.2 鎖數據結構 172 
7.1.3 等待的數據結構 172 
7.1.4 鎖數據結構的優點與 
缺點 172 
7.2 鎖數據結構的 
例子 173 
7.2.1 編寫不用鎖的綫程 
安全棧 174 
7.2.2 停止惱人的泄漏:在鎖數據結構中管理內存 178 
7.2.3 用風險指針檢測不能被 
迴收的結點 182 
7.2.4 使用引用計數檢測 
結點 189 
7.2.5 將內存模型應用至 
鎖棧 194 
7.2.6 編寫不用鎖的綫程安全 
隊列 198 
7.3 編寫鎖數據結構的 
準則 209 
7.3.1 準則:使用std::memory_order_ 
seq_cst作為原型 210 
7.3.2 準則:使用鎖內存迴收 
模式 210 
7.3.3 準則:當心ABA問題 210 
7.3.4 準則:識彆忙於等待的循環以及輔助其他綫程 211 
7.4 小結 211 
第8章 設計並發代碼 213 
8.1 在綫程間劃分工作的 
技術 214 
8.1.1 處理開始前在綫程間劃分 
數據 214 
8.1.2 遞歸地劃分數據 215 
8.1.3 以任務類型劃分 
工作 219 
8.2 影響並發代碼性能的 
因素 222 
8.2.1 有多少個處理器 222 
8.2.2 數據競爭和乒乓 
緩存 223 
8.2.3 假共享 225 
8.2.4 數據應該多緊密 225 
8.2.5 過度訂閱和過多的任務 
切換 226 
8.3 為多綫程性能設計數據 
結構 226 
8.3.1 為復雜操作劃分數組 
元素 227 
8.3.2 其他數據結構中的數據 
訪問方式 228 
8.4 為並發設計時的額外 
考慮 230 
8.4.1 並行算法中的異常 
安全 230 
8.4.2 可擴展性和阿姆達爾 
定律 237 
8.4.3 用多綫程隱藏延遲 238 
8.4.4 用並發提高響應性 239 
8.5 在實踐中設計並發 
代碼 241 
8.5.1 std::for_each的並行 
實現 241 
8.5.2 std::find的並行實現 243 
8.5.3 std::partial_sum的並行 
實現 248 
8.6 總結 256 
第9章 高級綫程管理 258 
9.1 綫程池 259 
9.1.1 簡單的綫程池 259 
9.1.2 等待提交給綫程池的 
任務 261 
9.1.3 等待其他任務的 
任務 265 
9.1.4 避免工作隊列上的 
競爭 267 
9.1.5 工作竊取 269 
9.2 中斷綫程 273 
9.2.1 啓動和中斷另一個 
綫程 274 
9.2.2 檢測一個綫程是否被 
中斷 275 
9.2.3 中斷等待條件變量 276 
9.2.4 中斷在std::condition_variable_ any上的等待 279 
9.2.5 中斷其他阻塞調用 281 
9.2.6 處理中斷 281 
9.2.7 在應用退齣時中斷後颱 
任務 282 
9.3 總結 284 
第10章 多綫程應用的測試與 
調試 285 
10.1 並發相關錯誤的 
類型 285 
10.1.1 不必要的阻塞 286 
10.1.2 競爭條件 286 
10.2 定位並發相關的錯誤的 
技巧 288 
10.2.1 審閱代碼以定位潛在的 
錯誤 288 
10.2.2 通過測試定位並發相關的 
錯誤 290 
10.2.3 可測試性設計 291 
10.2.4 多綫程測試技術 292 
10.2.5 構建多綫程的測試 
代碼 295 
10.2.6 測試多綫程代碼的 
性能 297 
10.3 總結 298 
附錄A 附錄A C++11部分 
語言特性簡明 
參考 299 
附錄B 並發類庫
C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 下載 mobi epub pdf txt 電子書 格式

C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 下載 mobi pdf epub txt 電子書 格式 2024

C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

類似圖書 點擊查看全場最低價

C++並發編程實戰 基於C++11新標準的並發和多綫程編程深度指南 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有