linux c使用互斥鎖實現同步

2021-06-18 16:06:05 字數 951 閱讀 3178

1. 需要使用到的庫pthread.h

2. 需要使用到的函式有pthread_mutex_init, pthread_mutex_destory, pthread_mutex_lock, pthread_unlock,

3. 需要保護的資料結構為

typedef struct cnt_sum  cnt_sum
兩個操作執行緒分別對此結構資料進行累加操作,以下為具體的累加函式

add1函式如下所示:

void *add1(void *arg)    

return (void *)0;

}

add2函式如下所示:

void *add2(void *arg) 

return (void *0);

}

自帶的sleep函式睡眠時間為1s,時間太長,編寫了乙個精度為毫秒的休眠函式,以下為具體的休眠函式**

void custom_sleep(int ms)
程式的完成**如下所示:

#include #include #include #include #include #include typedef struct ct_sum  ct_sum;

void custom_sleep(int ms)

void *add1(void *arg)

return 0;

}void *add2(void *arg)

return 0;

}int main(void)

編譯程式**

gcc -o mutex mutex.c
執行**即可看到相應的結果

./mutex

可以看到示例如下:

執行緒同步與互斥 實現互斥鎖

今天我們來分享一下,執行緒同步與互斥 互斥鎖的實現。多個執行緒同時訪問共享資料時可能會產生衝突,造成程式執行結果不是我們所預期的結果。不產生衝突的多執行緒訪問情況,和截圖如下 產生衝突的多執行緒訪問情況,和截圖如下 注 每執行一次,結果都可能會不同。由於多執行緒訪問共享資料時可能會產生衝突,不能保證...

linux c 多執行緒互斥鎖

beers.c include include include include include include int beers 2000000 建立互斥鎖,互斥鎖對所有可能發生衝突的執行緒可見,是乙個全域性變數.pthread mutex initializer實際上是乙個巨集,當編譯器看到它,...

同步鎖2 互斥鎖

1 import threading 2import time 34 num 100 5def add 6global num7 s num 8 time.sleep 0.02 9 num s 1 1011 l list 12for i in range 100 13 t threading.thr...