C 多執行緒入門(C 11)

2021-09-19 16:35:41 字數 953 閱讀 3098

這是我寫的乙個簡單的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...