Java内存模型和c++ 11内存模型有什么相似之处?
What are the similarities between the Java memory model and the C++11 memory model?
新的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_relaxed
或std::memory_order_seq_cst
等价的
相关文章:
- C++内存模型和位字段的最大序列
- C++内存模型中的确切规则阻止在获取操作之前重新排序
- 内存模型和并发
- 目标c是否需要一个标准来定义像c++11这样的内存模型
- 组件对象模型 (COM):IMalloc::Alloc 在哪里分配内存?
- 不可变数据模型的内存管理
- 内存模型:激活记录
- 急切地加载整个模型以估计张量流的内存消耗
- 为什么 C++/Java 内存模型不包含条件变量
- C 中的内存模型:为什么在同一内存位置分配了结构中的两个整数
- C 内存模型是否提供了有关构造函数操作的保证
- 性能与C 内存模型
- C++内存模型——这个例子包含数据竞赛吗
- 关于C++11内存模型的奇怪结果(放松排序)
- Cocos2d-x自定义内存模型的优点是什么
- C++编译器如何支持C++11原子,但不支持C++11内存模型
- C++11 内存模型是否可以防止内存撕裂和冲突?
- 具有强内存模型的平台上的易失性和多线程
- 对C++11内存模型有什么好的解释
- 非模板类中模板函数的内存模型