C 11多執行緒(四) mutex的應用

2021-10-03 02:41:01 字數 737 閱讀 4320

c++ 11的 mutex 比windows的功能相對豐富,和 boost mutex 基本類似,c++11 mutex主要分為以下4種

std::mutex

基本mutex

std::recursive_mutex

遞迴mutex,可以多重加鎖解鎖

std::timed_mutex

延時mutex, 到了一定時間自動解鎖

std::recursive_timed_mutex

遞迴延時mutex

在使用c++11的mutex需要包含如下標頭檔案

#includeusing namespace std;
下面用賣火車票的例子講解各種mutex的使用,**如下:

#include#include#includeusing namespace std;

using namespace std::this_thread;

using namespace std::chrono;

int g_tickets = 100;

void threadfunc(string &str)

{ while (g_tickets > 0)

{ if (g_tickets > 0)

{ sleep_for(chrono::milliseconds(100));

printf("%s正在賣%d張票\n&

C 11多執行緒 mutex學習

一頭檔案內容簡介 classes 1.1 mutexes mutex mutexclass class recursive mutex recursivemutex class class time mutex timedmutex class class recursive timed mutex...

C 11多執行緒之mutex

mutex類是能用於保護共享資料免受從多個執行緒同時訪問的同步原語。mutex既不可複製亦不可移動。構造互斥。呼叫後互斥在未鎖定狀態。mutex 複製建構函式被刪除。mutex const mutex delete lock 鎖定互斥。若另一線程已鎖定互斥,則到lock的呼叫將阻塞執行,直至獲得鎖。...

C 11多執行緒學習筆記(2) mutex

具有允許相互排斥 mutex 併發執行關鍵 段的功能的標頭,從而可以顯式避免資料爭用。它包含mutex型別,lock型別和其他函式 禁止拷貝與移動構造,只有預設建構函式,通過其建立的mutex物件處於unlock狀態。通過mutex物件呼叫lock 函式,可以鎖住mutex物件,有三種情況 1 該互...