std库锁机制的使用

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

锁是干什么用的

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

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

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

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

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

std::mutex

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

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int shared_data = 0;

void increment() {
    for (int i = 0; i < 1000; ++i) {
        std::lock_guard<std::mut
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新兴AI民工

码字不易,各位看客随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值