這篇部落格主要是解決乙個問題。
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 多執行緒 學習
什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資 源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區 是共享的,即不同的執行緒可以執行同樣的函式。什麼是多執...