我有互斥锁的例子。CurrentValue
- 成员Class
int Class::NextValue()
{
mutex.lock();
++CurrentValue;
++CurrentValue;
int localValue = CurrentValue;
mutex.unlock();
return localValue;
}
我不明白为什么使用localValue
. 下一个代码将无法正常工作?
...
mutex.unlock();
return CurrentValue;
万一return
不是原子的CurrentValue
,可以在复制构造函数期间更改。但是在第一个代码示例中可以与localValue
?