知識點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 45 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.建立狀態 在程式中用構造方法建立了乙個執行緒物件後,新的...