[好文分享]C++11内存模型

[C++11中的内存模型上篇 - 内存模型基础](https://www.codedump.info/post/20191214-cxx11-memory-model-1/?hmsr=codercto.com&utm_medium=codercto.com&utm_source=codercto.com)

[C++11中的内存模型下篇 - C++11支持的几种内存模型](https://www.codedump.info/post/20191214-cxx11-memory-model-2/)

总结一下C++11的内存模型:

内存模型产生的背景:随着处理器从单核到多核,处理器也从SMP架构(对称多处理器结构:Symmetric Multi-Processor)发展到了NUMA架构(非一致存储访问结构:Non-Uniform Memory Access),由于NUMA架构下每个CPU拥有独立的本地缓存,每个核看到的数据可能是不一样的,所有就有了不同的内存模型。

c++11中对此场景抽象出了四种内存模型(一致性从上往下逐渐弱化,效率也逐渐提高,但对使用上的要求也越高),分别为:

Sequential Consistency (顺序一致性)—— 默认方式,保证强一致性

获取与释放(Acquire-Release) —— 提供控制读写变量时的细粒度一致性保证

释放与依赖消费(Release-Consume)—— 提供控制读写依赖变量时的细粒度一致性保证,比Acquire-Release粒度更细

松弛型内存模型(Relaxed memory models)—— 最松散的内存模型

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值