在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ 關(guān)于這本書
3.4 本章總結(jié)
6.3 基于鎖設(shè)計更加復(fù)雜的數(shù)據(jù)結(jié)構(gòu)
6.1 為并發(fā)設(shè)計的意義何在?
5.2 <code>C++</code>中的原子操作和原子類型
A.7 自動推導(dǎo)變量類型
2.1 線程管理的基礎(chǔ)
8.5 在實踐中設(shè)計并發(fā)代碼
2.4 運行時決定線程數(shù)量
2.2 向線程函數(shù)傳遞參數(shù)
第4章 同步并發(fā)操作
2.3 轉(zhuǎn)移線程所有權(quán)
8.3 為多線程性能設(shè)計數(shù)據(jù)結(jié)構(gòu)
6.4 本章總結(jié)
7.3 對于設(shè)計無鎖數(shù)據(jù)結(jié)構(gòu)的指導(dǎo)建議
關(guān)于這本書
A.1 右值引用
2.6 本章總結(jié)
D.2 &lt;condition_variable&gt;頭文件
A.6 變參模板
6.2 基于鎖的并發(fā)數(shù)據(jù)結(jié)構(gòu)
4.5 本章總結(jié)
A.9 本章總結(jié)
前言
第10章 多線程程序的測試和調(diào)試
5.4 本章總結(jié)
第9章 高級線程管理
5.1 內(nèi)存模型基礎(chǔ)
2.5 識別線程
第1章 你好,C++的并發(fā)世界!
1.2 為什么使用并發(fā)?
A.5 Lambda函數(shù)
第2章 線程管理
4.3 限定等待時間
D.3 &lt;atomic&gt;頭文件
10.2 定位并發(fā)錯誤的技術(shù)
附錄B 并發(fā)庫的簡單比較
5.3 同步操作和強制排序
A.8 線程本地變量
第8章 并發(fā)代碼設(shè)計
3.3 保護共享數(shù)據(jù)的替代設(shè)施
附錄D C++線程庫參考
第7章 無鎖并發(fā)數(shù)據(jù)結(jié)構(gòu)設(shè)計
D.7 &lt;thread&gt;頭文件
D.1 &lt;chrono&gt;頭文件
4.1 等待一個事件或其他條件
A.3 默認函數(shù)
附錄A 對<code>C++</code>11語言特性的簡要介紹
第6章 基于鎖的并發(fā)數(shù)據(jù)結(jié)構(gòu)設(shè)計
封面圖片介紹
7.2 無鎖數(shù)據(jù)結(jié)構(gòu)的例子
8.6 本章總結(jié)
8.1 線程間劃分工作的技術(shù)
4.2 使用期望等待一次性事件
8.4 設(shè)計并發(fā)代碼的注意事項
D.5 &lt;mutex&gt;頭文件
3.1 共享數(shù)據(jù)帶來的問題
資源
9.3 本章總結(jié)
10.3 本章總結(jié)
10.1 與并發(fā)相關(guān)的錯誤類型
D.4 &lt;future&gt;頭文件
3.2 使用互斥量保護共享數(shù)據(jù)
9.1 線程池
1.1 何謂并發(fā)
9.2 中斷線程
4.4 使用同步操作簡化代碼
A.2 刪除函數(shù)
1.3 C++中的并發(fā)和多線程
1.4 開始入門
第5章 C++內(nèi)存模型和原子類型操作
消息傳遞框架與完整的ATM示例
8.2 影響并發(fā)代碼性能的因素
7.1 定義和意義
D.6 &lt;ratio&gt;頭文件
A.4 常量表達式函數(shù)
7.4 本章總結(jié)
1.5 本章總結(jié)
第3章 線程間共享數(shù)據(jù)

關(guān)于這本書

本書是并發(fā)和多線程機制指導(dǎo)書籍(基于C++11標準)。從最基本的std::thread std::mutexstd::async的使用,到復(fù)雜的原子操作和內(nèi)存模型。

路線圖

前4章,介紹了標準庫提供的各種庫工具,展示了使用方法。

第5章,涵蓋了底層內(nèi)存模型和原子操作的實際情況,包括原子操作如何對執(zhí)行順序進行限制(這章標志著介紹部分的結(jié)束)。

第6、7章,開始討論高級主題,如何使用基本工具去構(gòu)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu)——第6章是基于鎖的數(shù)據(jù)結(jié)構(gòu),第7章是無鎖數(shù)據(jù)結(jié)構(gòu)。

第8章,對設(shè)計多線程代碼給了一些指導(dǎo)意見,覆蓋了性能問題和并行算法。

第9章,線程管理——線程池,工作隊列和中斷操作。

第10章,測試和調(diào)試——Bug類型,定位Bug的技巧,以及如何進行測試等等。

附錄,包括新的語言特性的簡要描述,主要是與多線程相關(guān)的特性,以及在第4章中提到的消息傳遞庫的實現(xiàn)細節(jié)和C++11線程庫的完整的參考。

誰應(yīng)該讀這本書

如果你正在用C++寫一個多線程程序,你應(yīng)該閱讀本書。如果你正在使用C++標準庫中新的多線程工具,你可以從本書中得到一些指導(dǎo)意見。如果你正在使用其他線程庫,后面章節(jié)里的建議和技術(shù)指導(dǎo)也很值得一看。

閱讀本書需要你有較好的C++基礎(chǔ);雖然,關(guān)于多線程編程的知識或者經(jīng)驗不是必須的,不過這些經(jīng)驗可能有用。

如何使用這本書

如果從來沒有寫過多線程代碼,我建議你從頭到尾閱讀本書;不過,可以跳過第5章中的較為細節(jié)的部分。第7章內(nèi)容依賴于第5章中的內(nèi)容,因此,如果跳過了第5章,應(yīng)該保證在讀第7章時,已經(jīng)讀過第5章。

如果沒有用過C++11的工具,為了跟上這本書的進度,可以先閱讀一下附錄。新工具的使用在文本中已經(jīng)標注出來,不過,當遇到一些沒見過的工具時,可以隨時回看附錄。

即使有不同環(huán)境下寫多線程代碼的經(jīng)驗,開始的章節(jié)仍有必要瀏覽一下,這樣就能清楚地知道,你所熟知的工具在新的C++標準中對應(yīng)了哪些工具。如果使用原子變量去做一些底層工作,第5章必須閱讀。第8章,有關(guān)C++多線程的異常和安全性的內(nèi)容很值得一看。如果你對某些關(guān)鍵詞比較感興趣,索引和目錄能夠幫你快速找到相關(guān)的內(nèi)容。

你可能喜歡回顧主要的章節(jié),并用自己的方式閱讀示例代碼。雖然你已經(jīng)了解C++線程庫,但附錄D還是很有用。例如,查找每個類和函數(shù)的細節(jié)。

代碼公約和下載

為了區(qū)分普通文本,清單和正文中的中的所有代碼都采用像這樣的固定寬度的字體。許多清單都伴隨著代碼注釋,突出顯示重要的概念。在某些情況下,你可以通過頁下給出的快捷鏈接進行查閱。

本書所有實例的源代碼,可在出版商的網(wǎng)站上進行下載:www.manning.com/cplusplusconcurrencyinaction。

軟件需求

使用書中的代碼,可能需要一個較新的C++編譯器(要支持C++11語言的特性(見附錄A)),還需要C++支持標準線程庫。

寫本書的時候,g++是唯一實現(xiàn)標準線程庫的編譯器(盡管Microsoft Visual Studio 2011 preview中也有實現(xiàn))。g++4.3發(fā)布時添加了線程庫,并且在隨后的發(fā)布版本中進行擴展。g++4.3也支持部分C++11語言特性,更多特性的支持在后續(xù)發(fā)布版本中也有添加。更多細節(jié)請參考g++ C++11的狀態(tài)頁面[1]。

Microsoft Visual Studio 2010支持部分C++11特性,例如:右值引用和lambda函數(shù),但是沒有實現(xiàn)線程庫。

我的公司Software Solutions Ltd,銷售C++11標準線程庫的完整實現(xiàn),其可以使用在Microsoft Visual Studio 2005, Microsoft Visual Studio 2008, Microsoft Visual Studio 2010,以及各種g++版本上[2]。這個線程庫也可以用來測試本書中的例子。

Boost線程庫[3]提供的API,以及可移植到多個平臺。本書中的大多數(shù)例子將std::替換為boost::,再#include引用適當?shù)念^文件,就能使用Boost線程庫來運行。還有部分工具還不支持(例如std::async)或在Boost線程庫中有著不同名字(例如:boost::unique_future)。

作者在線

購買C++ Concurrency in Action就能訪問曼寧(Manning Publications)的私人網(wǎng)絡(luò)論壇,在那里可以對本書做一些評論,問一些技術(shù)問題,獲得作者或其他讀者的幫助。為了能夠訪問論壇和訂閱它的內(nèi)容,在瀏覽器地址中輸入www.manning.com/CPlusPlusConcurrencyinAction后,頁面將告訴你如何注冊之后訪問論壇,你能獲得什么樣的幫助,還有論壇中的一些規(guī)則。

曼寧保證為本書的讀者提供互相交流,以及和作者交流的場所。雖然曼寧自愿維護本書的論壇,但不保證這樣的場所不會收取任何的費用。所以,建議你可以嘗試提一些有挑戰(zhàn)性的問題給作者,免得這樣的地方白白浪費。

在本書印刷時,就可以通過Internet訪問作者的在線論壇和之前討論的文字記錄。


【1】GNU Compiler Collection C++0x/C++11 status page, http://gcc.gnu.org/projects/cxx0x.html.

【2】The just::thread implementation of the C++ Standard Thread Library, http://www.stdthread.co.uk.

【3】The Boost C++ library collection, http://www.boost.org.