线程同步-读写锁

1、读写锁,又称为共享互斥锁,实用于读多于写的情况

pthread_rwlock_init

pthread_rwlock_rlock

pthread_rwlock_wlock

pthread_rwlock_destroy

pthread_rwlock_timedrlock---避免长时间阻塞超时锁

pthread_rwlock_timedwlock---避免长时间阻塞超时锁

2、三种状态

1)读共享锁

当加读锁时,多个线程可以同时获得读锁

加写锁将阻塞,直到读锁释放。后续读锁也将阻塞(一些系统实现为了防止读锁长期占用)。

2)写互斥锁

加了写锁后,读锁和写锁都将阻塞

3)不加锁

联想mysql的锁

从锁的颗度来说,有表级别锁和行锁

从锁的互斥来说,有共享读和互斥写

原文地址:https://www.cnblogs.com/justart/p/7776416.html