如何在C++中获取锁

How to acquire a lock in C++?

本文关键字:获取 C++      更新时间:2023-10-16

有人能帮助我理解如何在最简单的例子中锁定c++中的变量吗?假设我需要锁定函数或线程中的2个变量

给定:

int a;
int b;
std::mutex mutex;

只需:

{
    std::lock_guard<decltype(mutex)> lock(mutex);
    ++a; // or whatever you wanna do to a
    b += a; // or whatever you wanna do to b
}

这将自动释放}处的锁定。

如果您想确保在访问有问题的变量之前获得锁,那么您必须编写一个包装器。