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 該互...