pthread_rwlock_t
是 POSIX 线程库(pthread
)提供的 读写锁 类型,主要用于实现 多线程并发读、互斥写 的同步机制。相比 pthread_mutex_t
,它可以允许多个线程同时读,但在写操作时必须独占。
1. pthread_rwlock_t
结构体的内部组成
pthread_rwlock_t
的具体结构因 不同的系统实现 而有所不同,以下是 GNU Libc(glibc)的一种实现方式(摘自 bits/pthreadtypes.h
):
typedef struct {
int __lock; // 读写锁的核心控制变量
unsigned int __nr_readers; // 当前持有读锁的线程数
unsigned int __readers_wakeup; // 等待被唤醒的读线程数
unsigned int __writer_wakeup; // 等待被唤醒的写线程数
unsigned int __nr_reader