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

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

我有兴趣了解C ++内存模型如何与旧的,众所周知的Java内存模型(1.5)相关联。 这是一样的吗? 这是类似的吗? 他们有什么重大的区别? 如果是这样,为什么?

Java内存模型已经存在了很长时间,很多人都很了解它,所以我想这不仅对我来说,学习C ++内存模型是有帮助的。

Java内存模型对C ++ 11内存模型是一个重要的影响,并且是我们将术语之前发生的事情 与之同步的地方。 但是,C ++ 11内存模型比Java内存模型提供更好的对内存sorting的细粒度控制。

如果您使用std::memory_order_acquire内存sorting读取, std::memory_order_releasesorting写入和std::memory_order_acq_relsortingRMW操作,Java volatilevariables等价于C ++ 11 std::atomic<>variables。

在Java中没有与std::memory_order_relaxedstd::memory_order_seq_cst