std库锁机制的使用

时间:2024-11-28 13:20:34

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

锁是干什么用的

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

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

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

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

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

std::mutex

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

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

std: