C 多執行緒 之 互斥鎖mutex 的簡單使用

2021-10-20 21:47:57 字數 958 閱讀 2845

先看一下沒加鎖的**及輸出:

#include

#include

using

namespace std;

int i =0;

// 公共資料

// 執行緒1函式

void

aaa()}

// 執行緒2函式

void

bbb()}

intmain

(int argc,

char

* ar**)

輸出:

沒加鎖的結論:

非常混亂 !

再看一下加了鎖之後的** 及 輸出

#include

#include

#include

using

namespace std;

mutex mutex1;

int i =0;

// 公共資料

// 執行緒1函式

void

aaa(

) mutex1.

unlock()

;}// 執行緒2函式

void

bbb(

) mutex1.

unlock()

;}intmain

(int argc,

char

* ar**)

輸出:

加了鎖的總結:

自己感受一哈~

注意:

結束:

分享也是自己對問題再次加深理解的方式,可能不全面,但絕對有用,後面將不斷完善~

多執行緒之互斥量(mutex) 鎖(lock)

private int counter 1 std condition variable cv1 std condition variable cv2 std mutex g mutex 多執行緒之互斥量 mutex 鎖 lock,unlock,lock guard g mutex.lock g m...

多執行緒之Mutex 互斥量

include include include long g count 0 long g sum 0 static const int g s count 10 critical section g csthreadparamer critical section g csthreadcode h...

多執行緒之互斥鎖

當執行緒之間需要用到共同的變數時,不希望某乙個執行緒使用時,被其它執行緒給呼叫,就需要互斥鎖來保證共享資源該執行緒使用完後,再給其它執行緒使用 典型例子 由於執行緒是獲取到作業系統分配的cpu時間片是才會執行,所以單cpu的情況下,多執行緒同步其實並非同步,當其中乙個執行緒1執行的時候,可能會中途跳...