特别是在非托管语言(例如C++,C)中,我的理解是字长数据的读/写是原子的。如果是这种情况,那么为什么人们在多线程环境中进行读/写操作时仍然锁定(通过互斥体)字长数据?

最佳答案

读和写可能*分别是原子的,但读-修改-写序列不是。

*这在很大程度上取决于架构和使用方式。

07-24 14:04