C 多執行緒學習

2021-08-22 08:37:07 字數 1120 閱讀 8589

這篇部落格主要是解決乙個問題。

c++建立執行緒、互斥量

c++多執行緒庫原始碼分析

c++訊號量實現

//用到的標頭檔案:

#include (執行緒)

#include (互斥量)

#include (非同步操作)

#include (條件變數)

//可能用到的命名空間:

using namespace this_thread(使用thread內部函式)

問題是:

建立三個執行緒,id分別為"a","b","c",每個執行緒分別輪流輸出自己的id,共10次,形如abcabcabc...

這是乙個看起來很簡單的題目,但是如何對執行緒調控是乙個問題,在不了解訊號量這個概念下,博主嘗試了一下:

#include #include using namespace std;

int th_num=3,times=10,active_num=0;

void prinid(int ser_num)

void wait()

void signal()

private:

int count;

mutex mut;

condition_variable condition;

};#endif // semaphore_h_included

定義三個訊號量以迴圈,解決問題:

#include #include #include "semaphore.h"

using namespace std;

using namespace this_thread;

const int th_num=3,times=10;

semaphore sp[th_num];

void prinid(int ser_num)

}int main()

//this_thread和chrono命名空間可以預先宣告

this_thread::sleep_for(chrono::milliseconds(1))//休眠1ms就足夠讓cpu反應過來

C 多執行緒學習

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

C 學習 多執行緒

c c本身並沒有多執行緒的內容,需要使用pthread庫,include,編譯 lpthread,pthread是乙個posix標準,在不同平台上有不同實現,這裡以linux pthread庫為準.參考一,執行緒的建立 1,使用pythread create函式,原型如下 int pthread c...

C 多執行緒 學習

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