读写锁rwlock:
分为:rdlock(读锁):只要没有线程持有某个给定的读写锁用于写,那么任意数目的线程可以持有该读写锁用于读,共享锁
wrlock(写锁):仅当没有线程持有某个给定的读写锁用于读或者写时,才能分配该读写锁用于写,独占锁
pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER;(初始化读写锁)
pthread_rwlock_rdlock(&rwlock):分配读锁
pthread_rwlock_wrlock(&rwlock):分配写锁
pthread_rwlock_unlock(&rwlock):解锁(只有解读写锁)
写锁解锁后多个线程在同等条件下分配读锁和写锁时先分配写锁(优先考虑分配写锁,但这不是必须的(系统不同))
原文地址:http://blog.51cto.com/13665347/2095435