新的C++标准引入了内存模型的概念。有关堆栈溢出的问题已经存在,这意味着什么,它如何改变我们在C++中编写代码的方式等等。
我有兴趣了解C++内存模型是如何与较旧的、众所周知的Java模型(1.5)相关联的。是一样的吗?类似吗?他们有什么显著的区别吗?如果是,为什么?
Java内存模型已经存在很长时间了,很多人都非常了解它,所以我想,通过将C++内存模型与Java内存模型进行比较,不仅对我来说,学习它可能会有所帮助。
发布于 2011-09-09 20:37:32
Java模型是对C++11内存模型的一个重要影响,也是我们提取术语发生的地方--在此之前--并与from同步。然而,C++11内存模型提供了比Java模型更细粒度的内存排序控制。
Java volatile变量等同于C++11 std::atomic<>变量,如果对读使用std::memory_order_acquire内存排序,对于写入使用std::memory_order_release排序,对于RMW操作使用std::memory_order_acq_rel排序。
在Java中没有与std::memory_order_relaxed或std::memory_order_seq_cst等效的地方。
https://stackoverflow.com/questions/7363462
复制相似问题