CPP 學習筆記 多執行緒

2022-03-10 18:17:01 字數 1785 閱讀 3286

知識點1

**自

- linux 下編譯 帶的cpp需要加上 -pthread 編譯選項。例如:

g++ -std=c++11 -pthread a.cpp

- qt creator 編譯帶的cpp有bug,暫時不知道怎麼去除!

**1

#include v

#include using namespacestd;

void run(char*p)

intmain()

; while("nimei")

else

cout<

}cin.get();

return 0;

}

知識點2

關於thread類的內部成

關鍵字詳細解釋

idthread的id

native_handle_type

native_handle_type

operator=

move massive thread

get_id

get thread id

joinable

get if joinable

join

join thread

detach

detach thread

swap

swap thread

native_handle

get native handle

hardware_concurrency[static]

detect hardware concurrency (public static function)

執行緒 detach 脫離主線程的繫結,主線程掛了,子執行緒不報錯,子執行緒執行完自動退出。

執行緒 detach以後,子執行緒會成為孤兒執行緒,執行緒之間將無法通訊。

執行緒中變數的競爭控制是通過 mutex automic 來實現的

mutex : 互斥量。需要包含標頭檔案 來使用 -->速度慢

atomic 原子變數。需要包含標頭檔案來實現 -->速度快,執行緒安全。

**3

#include #include #include #include using namespacestd;

int count(0);

voidrun()

}intmain()

cout<

cout<

cin.get();

return 0;

}

執行結果不是1000000×2.

1 #include 2 #include 3 #include 4 

5 using namespacestd;

6 int count(0);

7 8 voidrun()

9 15 }

16 17 intmain()

18 28

29 cout<

30 cout<

31 32

33 34

35 cin.get();

36 return 0;

37 }

執行結果是1000000×2.正確

atomic 宣告方式為 atomica(100); 等號初始化會報錯

vim 按ctrl+s 後假死按 ctrl+q 退出

多執行緒學習筆記 執行緒

thread類 常用屬性 currentthread 獲取當前正在執行的執行緒 isalive 指示當前執行緒的執行狀態 isbackground 指示是否為後台執行緒 isthreadpoolthread 指示是否屬於託管執行緒池 managedthreadid 獲取執行緒識別符號 name 獲取...

多執行緒學習筆記

多執行緒的相關概念 什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的...

多執行緒學習筆記

多執行緒是實現多工的一種方式,多個程序多個執行緒。建立執行緒 1.繼承thread類 子類覆蓋父類中的run方法,將執行緒執行的 存放在run中。2.建立子類物件的同時執行緒也被建立。3.通過呼叫start方法開啟執行緒。執行緒的各種狀態 1.建立狀態 在程式中用構造方法建立了乙個執行緒物件後,新的...