请教一个多线程加锁问题!
请教这两个例子在使用中有区别吗?请详细指导一下,在下初学锁。
例子1:
std::mutex 锁1;
static int i = 0;
线程1:
{
std::lock_guard<std::mutex> lk(锁1);
i = i + 1;
}
线程2:
{
std::lock_guard<std::mutex> lk(锁1);
i = i + 1;
}
例子2:
std::mutex 锁1;
std::mutex 锁2;
static int i = 0;
线程1:
{
std::lock_guard<std::mutex> lk(锁1);
i = i + 1;
}
线程2:
{
std::lock_guard<std::mutex> lk(锁2); //这里是锁2
i = i + 1;
}