muduo C++ 网络库——线程同步精要(2):条件变量

条件变量

条件变量的详细介绍在之前的一篇博文中:

Linux线程同步——条件变量


互斥器是加锁原语,用来排他性地访问共享数据,使用mutex时,我们希望立即拿到锁,然后尽快访问数据,用完之后尽快解锁,这样才能不影响并发性和性能。

先介绍moduo中condition的封装:

[cpp]  view plain   copy
  1. class Condition : boost::noncopyable  
  2. {  
  3.     public:  
  4.         explicit Condition(MutexLock& mutex) : mutex_(mutex)  
  5.         {   pthread_cond_init(&pcond_,NULL);    }  
  6.           
  7.         ~Condition() {  pthread_cond_destroy(&pcond_);  }  
  8.         void wait() {   pthread_cond_wait(&pcond_, mutex_.getPthreadMutex());   }  
  9.         void notify()   {   pthread_cond_signal(&pcond_ );  }  
  10.         void notifyAll()    {   pthread_cond_broadcast(&pcond_);    }  
  11.   
  12.     private:  
  13.         MutexLock&  mutex_;  
  14.    &nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值