如何在C ++中获取锁?

时间:2014-11-08 11:44:26

标签: c++ multithreading synchronization locks

任何人都可以帮助我理解如何在最简单的例子中用c ++锁定变量,假装我需要在函数或线程中锁定2个变量

1 个答案:

答案 0 :(得分:4)

假设:

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
}

这将自动释放}的锁定。

如果要在访问相关变量之前确保获取锁定,则必须编写包装器。