這是我寫的乙個簡單的code,下面貼一下執行結果,看完大致入門多執行緒:
#include #include #include #includeusing namespace std;
class calculation;
~calculation(){};
inline void add1()
};inline void add10()
};inline void add100()
};inline void add1000()
};inline long getnum();
private:
long num;
};int main()
if(ifmulti)
return 0;
}
當ifmulti 為false的時候,依次執行完四個物件的操作,執行結果如下:
add 1 step :1001
add 10 step :10001
add 100 step :100001
add 1000 step :1000001
no multi cost time: 4662.88 ms
當ifmulti 為true的時候,並行執行完四個物件的操作,執行結果如下:
add 1 step :1001
add 10 step :10001
add 1000 step :1000001
add 100 step :100001
muti_threads cost time: 1146.31 ms
注意,原本的函式操作時間不能太短,否則多執行緒沒有效率優勢,因為在切換執行緒的時候是需要有時間成本的。
注:上述的多執行緒,在向容器vector壓如資料的時候,一定要加鎖,否則會導致段錯誤,這個是血的教訓.
c 11多執行緒入門例項
6個執行緒併發輸出,第二個到第六個執行緒脫離了主程序,呼叫了t.detach 主程序等待第乙個執行緒,呼叫了t1.join t1.get id 獲得該執行緒id 感覺和在linux下面的多執行緒好像,pthread create 建立執行緒,pthread join 等待執行緒,pthread de...
C 11 多執行緒
新特性之描述 雖然 c 11 會在語言的定義上提供乙個記憶體模型以支援執行緒,但執行緒的使用主要將以 c 11 標準庫的方式呈現。c 11 標準庫會提供型別 thread std thread 若要執行乙個執行緒,可以建立乙個型別 thread 的實體,其初始引數為乙個函式物件,以及該函式物件所需要...
c 11 多執行緒
1.多執行緒的原理 同一時間內,cpu只能處理1條執行緒,只有1條執行緒在工作 執行 多執行緒併發 同時 執行,其實是cpu快速地在多條執行緒之間排程 切換 如果cpu排程執行緒的時間足夠快,就造成了多執行緒併發執行的假象。思考 如果執行緒非常非常多,會發生什麼情況?cpu會在n多執行緒之間排程,c...