OC原理之讀寫鎖

2022-06-05 12:30:08 字數 713 閱讀 8829

讀寫鎖區別於執行緒鎖,讀寫鎖允許多個執行緒去讀,但是去寫的時候保證只有乙個在寫

//

初始化鎖

pthread_rwlock_init(&_lock, null);

//加讀鎖

pthread_rwlock_rdlock(&_lock);

//嘗試加讀鎖

pthread_rwlock_tryrdlock(&_lock);

//解鎖

pthread_rwlock_unlock(&_lock);

//加寫鎖

pthread_rwlock_wrlock(&_lock);

//嘗試加寫鎖

pthread_rwlock_trywrlock(&_lock);

//銷毀鎖

pthread_rwlock_destroy(&_lock)

相當於乙個柵欄,如果是讀操作,會立乙個柵欄,讓所有的讀操作都過去,直到有乙個寫操作,此時再力

立起柵欄,在這個寫操作的結束,再立起乙個柵欄一次類推

dispatch_queue_create("

rw_queue

", dispatch_queue_concurrent);// 建立乙個並行佇列

dispatch_async(self.queue, ^);

dispatch_barrier_async(self.queue, ^);

pthread之讀寫鎖

讀寫鎖是用來解決讀者寫者問題的,讀操作可以共享,寫操作是排他的,讀可以有多個在讀,寫只有唯一個在寫,同時寫的時候不允許讀。具有強讀者同步和強寫者同步兩種形式 強讀者同步 當寫者沒有進行寫操作,讀者就可以訪問 強寫者同步 當所有寫者都寫完之後,才能進行讀操作,讀者需要最新的資訊,一些事實性較高的系統可...

JUC之讀寫鎖

是什麼?讀寫分離的鎖。locks包下的 lock condition readwritelock 裡面的readwritelock 讀寫鎖 維護了一對讀寫操作。讀的鎖可以共享 又叫共享鎖 寫的鎖獨佔 又叫獨佔鎖 即寫操作只能開始寫 寫結束,中間不能插入任何寫的操作。怎麼用?如果沒有鎖的情況 publ...

Unix IPC之讀寫鎖

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