Base——Condition类、CountDownLatch类

本文介绍了Condition类和CountDownLatch类的成员变量及使用。Condition类的mutex_为引用,不管理其生命周期。CountDownLatch类中,mutable关键字用于允许const函数修改非状态影响的成员变量。测试用例展示了当count_变为0时,如何通知等待条件变量的线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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),
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值