std库锁机制的使用

embedded/2024/11/30 3:00:57/

在多线程编程中,关键资源的读写访问是程序员需要非常重视的部分。而控制好读写主要靠的就是锁机制,在各个编程框架中都提供了锁的实现机制。这一篇就简单列举一下std标准库中提供的一些锁机制

锁是干什么用的

这里稍微啰嗦一句,用通俗的话解释一下锁是干什么用的。其实我觉得叫做锁反而没那么好理解,反倒是叫做钥匙比较好理解一点。

我们可以理解:为了保护啊关键资源,把关键资源当作重要资源锁在某个门里面,如果需要读写的话需要打开门去访问,而锁实际上就是打开门的钥匙。一般来说,锁只有一把,谁拿到了(线程),谁就可以开门去访问。

当然,也有多把锁的,比如说读锁

我觉得以这个逻辑来理解整个锁的逻辑会更清晰一点。

有哪些锁的种类以及用法(或者说钥匙的种类)

mutex_12">std::mutex

std::mutex 是一种基本的互斥锁,用于保护共享数据,防止多个线程同时访问。
相当于这个门就一种钥匙,也只有一把钥匙

#include <iostream>
#include <thread>
#include <mutex>std:

http://www.ppmy.cn/embedded/141634.html

相关文章

2024年第十三届”认证杯“数学中国数学建模国际赛(小美赛)

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

【JavaEE初阶 — 网络编程】TCP流套接字编程

TCP流套接字编程 1. TCP &#xff06; UDP 的区别 TCP 的核心特点是面向字节流&#xff0c;读写数据的基本单位是字节 byte 2 API介绍 2.1 ServerSocket 定义 ServerSocket 是创建 TCP 服务端 Socket 的API。 构造方法 方法签名 方法说明 ServerS…

Mybatis集成篇(一)

Spring 框架集成Mybatis 目前主流Spring框架体系中&#xff0c;可以集成很多第三方框架&#xff0c;方便开发者利用Spring框架机制使用第三方框架的功能。就例如本篇Spring集成Mybatis 简单集成案例&#xff1a; Config配置&#xff1a; Configuration MapperScan(basePack…

Git远程仓库过大导致clone失败的解决方法

方法1. 升级为git 最新版本 方法2&#xff1a; 浅层clone 首先clone一层&#xff1a; 1$ git clone --depth1 http://xxx.git浅层clone成功后&#xff0c;再完整拉取&#xff1a; 1 2 3$ git fetch --unshallow # 拉取完整当前分支 $ git remote set-branches origin * # 追…

架构第十八章:jenkins

CI&CD: 持续集成注重将各个开发者的工作集合到一个代码仓库中&#xff0c;通常每天会进行几次&#xff0c; 主要目的是尽早发现集成错误&#xff0c;使团队更加紧密结合&#xff0c;更好地协作。 持续交付的目的是最小化部署或发布过程中团队固有的摩擦&#xff0c; 它的实…

iphone小程序设置burpsuite代理抓包

1、iphone、burpsuite链接同一wifi 2、burpsuite设置代理 3、iphone配置代理 4、浏览器访问“http://burp”&#xff0c;下载证书&#xff0c;安装证书 5、前往“设置”>“通用”>“关于本机”>“证书信任设置”。 在“针对根证书启用完全信任”下&#xff0c;开启对…

类和对象--中--运算符重载、日期类实现(重要)

目录 1.运算符重载 2.日期类 1.运算符重载 2.1作用&#xff1a; 为了让C的新类型&#xff1a;类。也可以进行内置类型的运算符操作。所以就有了运算符重载。 2.2定义&#xff1a; 运算符重载是具有特殊名字的函数&#xff0c;他的名字是由operator和后⾯要定义的运算符共…

ESP32学习笔记_FreeRTOS(2)——Queue

摘要(From AI): 在嵌入式系统开发中&#xff0c;任务之间的高效通信是实现多任务协作的关键。FreeRTOS 提供了强大的队列机制&#xff0c;支持任务之间安全、灵活地传递数据&#xff0c;是实现任务同步和事件通知的核心工具。本篇博客将全面解析 FreeRTOS 队列的工作原理和应用…