執行緒同步 讀寫鎖的使用

2021-10-02 09:08:35 字數 879 閱讀 1202

特別重要12字:寫獨佔,讀共享; 寫鎖優先順序高

主要應用函式:

(1)pthread_rwlock_init ------初始化

(2)pthread_rwlock_rdlock ----讀鎖

(3)pthread_rwlock_wrlock ----寫鎖

(4)pthread_rwlock_tryrdlock —try寫鎖

(5)pthread_rwlock_trywrlock —try讀鎖

(6)pthread_rwlock_unlock -------解鎖

(7)pthread_rwlock_destory------毀鎖

使用場景:讀的次數遠大於寫的次數時;

**

#include

#include

#include

#include

pthread_rwlock_t rwlock;

int counter=0;

//共享資料,寫獨佔,讀共享。

void

*pthread_write

(void

* arg)

}void

*pthread_read

(void

* arg)

}int

main()

for(

int i=

0; i<

5;i++

)for

(i=0

;i<

8;i++

)pthread_rwlock_unlock

(&rwlock)

;return0;

}

Linux執行緒同步 讀寫鎖

讀寫鎖和互斥量 互斥鎖 很類似,是另一種執行緒同步機制,但不屬於posix標準,可以用來同步同一程序中的各個執行緒。當然如果乙個讀寫鎖存放在多個程序共享的某個記憶體區中,那麼還可以用來進行程序間的同步.和互斥量不同的是 互斥量會把試圖進入已保護的臨界區的執行緒都阻塞 然而讀寫鎖會視當前進入臨界區的執...

linux執行緒同步之讀寫鎖

讀寫鎖與互斥量類似,不過讀寫鎖的並行性更高。讀寫鎖可以有三種狀態 1 讀模式加鎖 2 寫模式加鎖 3 不加鎖。在寫加鎖狀態時,在解鎖之前,所有試圖對這個鎖加鎖的執行緒都會被阻塞。在讀加鎖狀態時,所有試圖以讀模式對它進行加鎖的執行緒都可以得到訪問許可權。但是如果執行緒希望以寫模式加鎖,它必須阻塞,直至...

Linux執行緒同步之讀寫鎖

讀寫鎖比mutex有更高的適用性,可以多個執行緒同時占用讀模式的讀寫鎖,但是只能乙個執行緒占用寫模式的讀寫鎖。1.當讀寫鎖是寫加鎖狀態時,在這個鎖被解鎖之前,所有試圖對這個鎖加鎖的執行緒都會被阻塞 2.當讀寫鎖在讀加鎖狀態時,所有試圖以讀模式對它進行加鎖的執行緒都可以得到訪問權,但是以寫模式對它進行...