- 论坛徽章:
- 0
|
pthread_mutex_t r_Mutex; ///读锁 ,锁住readCounter
pthread_mutex_t w_Mutex; ///锁住同步资源
unsigned long readCounter; ///条件变量如果为0通知(pthread_cond_signal)
pthread_cond_t condReadCounter;
void G_Lock::rLock()
{
pthread_mutex_lock(&w_Mutex); //防止于写操作冲突
pthread_mutex_lock(&r_Mutex); //防止readCounter 冲突
readCounter++;
pthread_mutex_unlock(&w_Mutex); ///写解锁
pthread_mutex_unlock(&r_Mutex); ///读解锁
}
为什么加读锁时,要上俩个锁:pthread_mutex_lock(&w_Mutex); pthread_mutex_lock(&r_Mutex); .上一个锁不就可以实现只有一个线程进行readCounter++操作了吗?
新手,问题有点弱.谢谢. |
|