首页 > 编程语言 >[C++ Daily] 递归锁解决标准锁的典型应用

[C++ Daily] 递归锁解决标准锁的典型应用

时间:2024-09-07 14:25:06浏览次数:9  
标签:std recursive 递归 C++ mutex Daily

递归锁解决标准锁的典型应用

先看源码:

image-20240907141802315

结果(在A种尝试锁住mutex_时失败,进程等待,死锁无法退出:

image-20240907141836754

将std::mutex 用 std::recursive_mutex替换:

image-20240907142118566

结果:

image-20240907142149366


解析:

std::recursive_mutex允许同一个线程对同一个锁对象进行多次上锁,获得多层所有权.

标签:std,recursive,递归,C++,mutex,Daily
From: https://www.cnblogs.com/NekoBlog/p/18401651

相关文章

  • C++中的字符和字符串
    一:引言1、错误分析请先看一下以下代码#include<iostream>#include<utility>//包含pair和make_pair的定义intmain(){//创建pair对象std::pair<int,std::string>p1(1,"one");//使用make_pair创建pair对象autop2=std::make_pair(2,"t......
  • 迷宫,返回所有路径并排序(C++)(回溯+dfs)
    题意说明:要求给出一个m*n的矩阵迷宫,0代表入口,1代表道路,2代表墙体,3代表出口,要求返回从入口到出口的所有移动路径并按长短从小到大排序。移动路径:就是wasd的移动路径,如一共走三步:下,右,下,则输出:sds。代码如下:#include<iostream>#include<string>#include<vector>#include<alg......
  • 【C++】模板初阶
    【C++】模板初阶1.函数模板(1).函数模板概念(2).函数模板格式(3).函数模板的原理(4).函数模板的实例化2.类模板(1).类模板的定义格式(2).类模板的实例化1.函数模板(1).函数模板概念函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据......
  • C++(clock())
    目录1.clock_t2.clock()2.1函数定义3.示例4.注意事项在C++中,clock_t和clock()是与时间度量和性能测量相关的库函数,主要用于计算程序运行的时间。1.clock_tclock_t是在<ctime>或<time.h>中定义的一个类型,通常用于存储由clock()返回的处理器时间值。这个类型......
  • C++(std::vector)
    目录1.特性2.常用成员函数2.1构造函数2.2元素访问2.3修改容器2.4容量相关2.5迭代器3.内存管理与效率4.示例:5.性能分析:std::vector是C++标准库中的一个动态数组容器,位于#include<vector>头文件中。它是一个模板类,可以存储任何类型的对象,并根据需要动态调整其大......
  • C++顺序结构(1)
    1、C++程序的样子2、流输出流COUT<<3、一个实例及解析//001程序的基本结构 //单行注释/*多行注释 被注释过的内容不会被运行,可以用来做笔记。基本结构:1.头文件 程序包含某个头文件后,程序中的代码就可以使用这个头文件里的功能。2.命名空间3.主函数 类似Scr......
  • C++:构造函数、析构函数
    目录一、类的默认成员函数二、构造函数构造函数的特点三、析构函数析构函数的特点一、类的默认成员函数    默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数,一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,默认成员函......
  • 南沙信C++陈老师解一本通题: 1101:不定方程求解
    ​ 【题目描述】给定正整数a,b,c。求不定方程 ax+by=c关于未知数x和y的所有非负整数解组数。【输入】一行,包含三个正整数a,b,c两个整数之间用单个空格隔开。每个数均不大于1000。【输出】一个整数,即不定方程的非负整数解组数。【输入样例】2318【输出样例】4......
  • C++ string类详解
    文章目录C++|string类详解1、标准库中的string类1.1string类介绍1.2auto关键字和范围for读写string1.2.1auto关键字1.2.2范围for组成内容:特点:举例:1.3string类的常用接口说明1.3.1常见构造方式1.3.2常见容量相关操作1.3.3string类对象的访问及遍历操作1.3.4stri......
  • C++vector类相关OJ练习
    个人主页:C++忠实粉丝欢迎点赞......