条件变量
条件变量的详细介绍在之前的一篇博文中:
互斥器是加锁原语,用来排他性地访问共享数据,使用mutex时,我们希望立即拿到锁,然后尽快访问数据,用完之后尽快解锁,这样才能不影响并发性和性能。
先介绍moduo中condition的封装:
- class Condition : boost::noncopyable
- {
- public:
- explicit Condition(MutexLock& mutex) : mutex_(mutex)
- { pthread_cond_init(&pcond_,NULL); }
- ~Condition() { pthread_cond_destroy(&pcond_); }
- void wait() { pthread_cond_wait(&pcond_, mutex_.getPthreadMutex()); }
- void notify() { pthread_cond_signal(&pcond_ ); }
- void notifyAll() { pthread_cond_broadcast(&pcond_); }
- private:
- MutexLock& mutex_;
- &nbs