linux讀寫鎖應用

2021-09-25 18:26:35 字數 1072 閱讀 3663

思路: linux多執行緒時,資料空間為公共,乙個執行緒去新增資料,乙個執行緒去修改資料,這個時候需要加入互斥鎖,倆個執行緒如果同時去處理這個資料空間,資料會出錯,除了執行緒鎖之外,學習了乙個讀寫鎖

詳細函式說明:

核心函式:

初始化讀寫鎖 pthread_rwlock_init

寫入讀寫鎖中的鎖 pthread_rwlock_wrlock(阻塞)

解除鎖定讀寫鎖 pthread_rwlock_unlock

#include #include #include #include #include #include pthread_rwlock_t  rwlock = pthread_rwlock_initializer;

char tmp_buf[100] = ;

void test()

}int main()

if ((pthread_create(&fp, null, (void *)&test, null)) == -1)

while (1)

}

gcc test_time.c -lpthread -o hello
結果:

不加鎖

./hello 

test : 1564587467

test : 1564587469

test : 1564587471

main : 1564587471

test : 1564587473

test : 1564587475

test : 1564587477

main : 1564587477

test : 1564587479

test : 1564587481

加鎖

./hello 

main : test

test : 1564587516

main : test

test : 1564587522

main : test

test : 1564587528

linux 讀寫鎖應用例項

使用讀寫鎖實現四個執行緒讀寫一段程式的例項,共建立了四個新的執行緒,其中兩個執行緒用來讀取資料,另外兩個執行緒用來寫入資料。在任意時刻,如果有乙個執行緒在寫資料,將阻塞所有其他執行緒的任何操作。include include include include include static pthrea...

linux程序讀寫鎖

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

Linux讀寫鎖使用

讀寫鎖很早就知道了,但是使用的不多,這次 中出現了,才認真思考怎麼用。摘錄一下 讀寫鎖的特點是 當讀寫鎖是寫加鎖時,在這個鎖被解鎖之前,所有試圖對這個鎖加鎖的執行緒都會被阻塞。當讀寫鎖是讀加鎖時,在這個鎖被解鎖之前,所有試圖以讀模式對他進行加鎖的執行緒都可以得到訪問權,但是如果執行緒以寫模式對此鎖加...