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

附錄B 并發(fā)庫(kù)的簡(jiǎn)單比較

雖然,C++11才開始正式支持并發(fā),不過(guò),高級(jí)編程語(yǔ)言都支持并發(fā)和多線程已經(jīng)不是什么新鮮事了。例如,Java在第一個(gè)發(fā)布版本中就支持多線程編程,在某些平臺(tái)上也提供符合POSIX C標(biāo)準(zhǔn)的多線程接口,還有Erlang支持消息的同步傳遞(有點(diǎn)類似于MPI)。當(dāng)然還有使用C++類的庫(kù),比如Boost,其將底層多線程接口進(jìn)行包裝,適用于任何給定的平臺(tái)(不論是使用POSIX C的接口,或其他接口),其對(duì)支持的平臺(tái)會(huì)提供可移植接口。

這些庫(kù)或者編程語(yǔ)言,已經(jīng)寫了很多多線程應(yīng)用,并且在使用這些庫(kù)寫多線程代碼的經(jīng)驗(yàn),可以借鑒到C++中,本附錄就對(duì)Java,POSIX C,使用Boost線程庫(kù)的C++,以及C++11中的多線程工具進(jìn)行簡(jiǎn)單的比較,當(dāng)然也會(huì)交叉引用本書的相關(guān)章節(jié)。

特性 啟動(dòng)線程 互斥量 監(jiān)視/等待謂詞 原子操作和并發(fā)感知內(nèi)存模型 線程安全容器 Futures(期望) 線程池 線程中斷
章節(jié)引用 第2章 第3章 第4章 第5章 第6章和第7章 第4章 第9章 第9章
C++11 std::thread和其成員函數(shù) std::mutex類和其成員函數(shù) std::condition_variable std::atomic_xxx類型 N/A std::future N/A N/A
std::lock_guard模板 std::condition_variable_any類和其成員函數(shù) std::atomic類模板 std::shared_future
std::unique_lock模板 std::atomic_thread_fence()函數(shù) std::atomic_future類模板
Boost線程庫(kù) boost::thread類和成員函數(shù) boost::mutex類和其成員函數(shù) boost::condition_variable類和其成員函數(shù) N/A N/A boost::unique_future類模板 N/A boost::thread類的interrupt()成員函數(shù)
boost::lock_guard類模板 boost::condition_variable_any類和其成員函數(shù) boost::shared_future類模板
boost::unique_lock類模板
POSIX C pthread_t類型相關(guān)的API函數(shù) pthread_mutex_t類型相關(guān)的API函數(shù) pthread_cond_t類型相關(guān)的API函數(shù) N/A N/A N/A N/A pthread_cancel()
pthread_create() pthread_mutex_lock() pthread_cond_wait()
pthread_detach() pthread_mutex_unlock() pthread_cond_timed_wait()
pthread_join() 等等 等等
Java java.lang.thread類 synchronized塊 java.lang.Object類的wait()和notify()函數(shù),用在內(nèi)部synchronized塊中 java.util.concurrent.atomic包中的volatile類型變量 java.util.concurrent包中的容器 與java.util.concurrent.future接口相關(guān)的類 java.util.concurrent.ThreadPoolExecutor類 java.lang.Thread類的interrupt()函數(shù)