Java内存模型和c++ 11内存模型有什么相似之处?

What are the similarities between the Java memory model and the C++11 memory model?

本文关键字:模型 内存 相似 什么 c++ Java      更新时间:2023-10-16

新的c++标准引入了内存模型的概念。Stack Overflow上已经有关于它的问题了,它是什么意思,它如何改变我们用c++写代码的方式等等。

我有兴趣了解c++内存模型与旧的、众所周知的Java内存模型(1.5)之间的关系。是一样的吗?相似吗?他们有什么显著的不同吗?如果是,为什么?

Java内存模型已经存在很长时间了,很多人都很了解它,所以我想学习c++内存模型,将其与Java内存模型进行比较,可能不仅对我有帮助。

Java内存模型对c++ 11内存模型有重要的影响,我们从这里提取了发生(在同步之前)的术语。然而,c++ 11内存模型提供了比Java内存模型更细粒度的内存排序控制。

Java volatile变量等价于c++ 11 std::atomic<>变量,如果你使用std::memory_order_acquire内存顺序读,std::memory_order_release内存顺序写,std::memory_order_acq_rel内存顺序RMW操作。

在Java中没有与std::memory_order_relaxedstd::memory_order_seq_cst等价的