C ++ 11,C#和Java内存模型之间的差异

时间:2013-11-17 18:22:50

标签: java c++ multithreading memory-management c++11

我知道C ++ 11内存模型的灵感来自Java内存模型,但必须有一些能够区分这两种内存模型的东西。

Java uses synchronize and mutexes
C++11 uses atomics and mutexes
C# uses volatile

但是在内存中的多线程和线程的读/写访问方面,这三者之间的根本区别是什么?这三种模式中哪种内存模型更好?任何人都可以详细介绍这个主题(只是差异)或提供一个我可以参考的链接?这些在各种实时系统上实现的效率如何?

提前致谢!

1 个答案:

答案 0 :(得分:2)

虽然这不能量化C ++ 11内存模型之间的差异,但它确实详细介绍了C ++ 11模型,这是最近编写的,因此很可能最现代的:

http://herbsutter.com/2013/02/11/atomic-weapons-the-c-memory-model-and-modern-hardware/

一旦您将C ++ 11的模型理解为一个起点,这将为您提供更好的工具来询问其他语言。