1. 不等待執行緒完成的啟動方式
#include#include#includeusing namespace std;void print()
int main()
//------執行結果------------
/*ps e:\desktop> g++ -std=c++11 .\1.cpp
ps e:\desktop> a
ps e:\desktop>
*/
該方法中的啟動執行緒方式unix中的守護執行緒相似,都是被分離的執行緒(參照unix的守護執行緒的概念,被分離的執行緒通常被稱為守護執行緒)。
2. 等待執行緒的完成的方式
#include#include#includeusing namespace std;void print()
int main()
//----------------執行結果-------------------
/*ps e:\desktop> g++ -std=c++11 .\1.cpp
ps e:\desktop> a
hello world
*/
#include#include#includeusing namespace std;void print(string s)
int main()
在進行引數傳遞的時候可以在構造的thread物件中進行傳遞。
thread物件也可以像普通物件一樣使用 t1 = std::mvoe(t),的形式進行所有權的轉讓。
由於執行緒的切換是要消耗資源的所以在使用多執行緒進行併發程式設計時要考慮硬體執行緒數,如果處理器只支援乙個執行緒,我們的**中開啟了多個執行緒,這樣在進行切線程時,也會表白浪費掉很多時間,所以我們可以根據thread::hardware_concurrency()來獲取執行緒的數量。
#include#include#includeusing namespace std;int main()
//------------執行結果------
/*ps e:\desktop> g++ -std=c++11 .\1.cpp
ps e:\desktop> a
4*/
可以發現我的電腦中是支援4個執行緒的,所以在開啟多執行緒數量的時候,盡量選擇4個左右。
第2章 程序管理
要點 分析程式執行順序 以及併發的特徵 程序的概念 特徵與狀態 程序控制塊及其組織 關於程式執行順序 1 引入前趨圖 描述程序執行前後關係的圖 有向無迴圈圖 dag 2 程式順序執行時的特徵 1 順序性 處理機的操作嚴格按程式規定順序執行 2 封閉性 程式一旦開始執行,其計算結果不受外界因素影響。3...
Objective C第2版第9章 記憶體管理
記憶體管理主要基於指標物件進行,作用於使用alloc new copy關鍵字建立的指標物件。withcapacity方法,或者別的方法建立的例項物件,無需進行記憶體管理,假設已經將計數器 1且設定為自動釋放。記憶體管理主要有2種方法實現 一種是禁用arc功能,通過手動呼叫記憶體管理方法進行實現 第二...
第11章 執行緒
執行緒標識 就像每個程序有乙個程序id一樣,每個執行緒也有乙個執行緒id。程序id在整個系統中是唯一的,但執行緒id不同,執行緒id只有在它所屬的程序上下文中才有意義。程序id 用pid t資料型別表示 執行緒id用pthread t資料型別來表示 includeint pthread equal ...