本文主要是介绍学习muduo库(4)之门闩类CountDownLatch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
UML:
解释:
CountDownLatch类是一个通过条件变量类condition,来实现让多个子线程同时起跑的。其实count_是表示需要建立的线程数,当count_大于零时,线程会被条件变量挂起。每建立一个线程count_都会减一,当最后一个线程建立成功后,count_减为零。这个时候就唤起所有被条件变量挂起的线程。这些线程同时起跑。关键的代码如下:
void CountDownLatch::wait()
{MutexLockGuard lock(mutex_);while (count_ > 0){condition_.wait();}
}void CountDownLatch::countDown()
{MutexLockGuard lock(mutex_);--count_;if (count_ == 0){condition_.notifyAll();}
}
这篇关于学习muduo库(4)之门闩类CountDownLatch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!