有了一定的語法基礎,對於用法,直接參考官方文件是最可靠和直接的,對於實踐,要麼自尋探索,要麼假借他人。————我說的ps:使用noexcept表明函式或操作不會發生異常,會給編譯器更大的優化空間。
使用c++11執行緒庫前需引用標頭檔案#include
。
1.1 資源控制
建構函式與刪除的拷貝構造
thread()
noexcept
;//since c++11
thread
(thread&& other)
noexcept
;//since c++11
template
<
class
function
,class..
.args>
explicit
thread
(function &&f,args &&..
.args)
;//since c++11
thread
(const thread&)=
delete
;//since c++11
thread一共有兩種構造方法:
析構函式
~
thread()
;(since c++
11)
如果執行緒物件在析構時仍然與某個thread關聯,那麼將會呼叫std::terminate()
產生異常。以下情況會讓待析構物件將不會產生異常:
簡單是說,thread的生命週期結束時,若仍然沒有進入無關聯狀態就會丟擲異常。
移動賦值運算子
thread &
operator
=(thread&& other)
noexcept
;(since c++
11)
使用std::move將會呼叫的運算子,使用有std::move的執行緒物件必須處於無關聯狀態,否則和析構一樣會產生異常。
1.2 觀察器
1.3 操作
1.4 非成員函式
等效於成員函式版的swap
c 多執行緒 類成員函式 C 11中多執行緒庫
執行緒是在作業系統層面支援的,所以多執行緒的學習建議還是先找一本linux系統程式設計類的書,了解linux提供執行緒的api,了解使用執行緒設計程式的基本操縱。完全使用系統呼叫編寫多執行緒程式是痛苦,現在有很多封裝好的多執行緒庫,幫助簡單快速的使用執行緒程式設計,了解作業系統提供的api對理解多執...
C 11 移動建構函式
移動建構函式是什麼?先舉個例子,你有一本書,你不想看,但我很想看,那麼我有哪些方法可以讓我能看這本書?有兩種做法,一種是你直接把書交給我,另一種是我去買一些稿紙來,然後照著你這本書一字一句抄到稿紙上。顯然,第二種方法很浪費時間,但這正是有些深拷貝建構函式的做法,而移動建構函式便能像第一種做法一樣省時...
C 11 委派建構函式
一 委派建構函式 深入理解c 11 委派構造 就是指委派函式將構造的任務派給了目標建構函式來完成這樣一種類構造的方式。c 11中的委派建構函式是在建構函式的初始化列表位置進行構造的 委派的 基準版本 的建構函式稱為目標建構函式,呼叫 基準版本 的建構函式稱為委派建構函式 舉例 namespace d...