草庐IT

c++ - 编译器围绕互斥锁边界重新排序?

假设我有自己的非内联函数LockMutex和UnlockMutex,它们在内部使用了一些适当的互斥锁-例如boost。编译器如何知道不对调用LockMutex和UnlockMutex的其他操作重新排序?它不可能知道我将如何在其他编译单元中实现这些功能。voidSomeClass::store(inti){LockMutex(_m);_field=i;//couldthecompilermovethisaround?UnlockMutex(_m);}ps:应该使用类的实例来持有锁以保证解锁。为了简化示例,我将其省略。 最佳答案 Itc