1.成员变量
Condition类
- mutex_为引用,该类并不管理该成员变量的生命周期
CountDownLatch类
- mutable关键字:
- 知乎
- mutable意思是“这个成员变量不算对象内部状态”。比如,你搞了个变量,用来统计某个对象的访问次数(比如供debug用)。它变成什么显然并不影响对象功用,但编译器并不知道:它仍然会阻止一个声明为const的函数修改这个变量。把这个计数变量声明为mutable,编译器就明白了:这个变量不算对象内部状态,修改它并不影响const语义,所以就不需要禁止const函数修改它了。
2.测试用例
当count_变量变为0时,就通知所有等待该条件变量的线程
/*
创建3个子线程,主线程sleep(3)后,调用countDown(),通知所有等待的子线程让其继续执行
*/
#include <muduo/base/CountDownLatch.h>
#include <muduo/base/Thread.h>
#include <boost/bind.hpp>
#include <boost/ptr_container/ptr_vector.hpp>
#include <string>
#include <stdio.h>
using namespace muduo;
class Test
{
public:
Test(int numThreads)
: latch_(1),