1、读写锁,又称为共享互斥锁,实用于读多于写的情况
pthread_rwlock_init
pthread_rwlock_rlock
pthread_rwlock_wlock
pthread_rwlock_destroy
pthread_rwlock_timedrlock---避免长时间阻塞超时锁
pthread_rwlock_timedwlock---避免长时间阻塞超时锁
2、三种状态
1)读共享锁
当加读锁时,多个线程可以同时获得读锁
加写锁将阻塞,直到读锁释放。后续读锁也将阻塞(一些系统实现为了防止读锁长期占用)。
2)写互斥锁
加了写锁后,读锁和写锁都将阻塞
3)不加锁
联想mysql的锁
从锁的颗度来说,有表级别锁和行锁
从锁的互斥来说,有共享读和互斥写