任何人都可以帮助我理解如何在最简单的例子中用c ++锁定变量,假装我需要在函数或线程中锁定2个变量
答案 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
}
这将自动释放}
的锁定。
如果要在访问相关变量之前确保获取锁定,则必须编写包装器。