关于volitile相关知识

简介: 关于volitile相关知识

volitile重排序相关解释

对volitile变量的写入操作之后要保证不能和读之后的读操作重排序。这是内存重排序的一种解决方案happenbeforr中规定的底层通过刚开始讲的内存屏障保证不会重排序。

volitile是通过happenbefore原则保证的。

普通变量的写入和读取再各个线程都有自己的缓存不能够及时同步到主存中,因此多线程下会出现问题,单线程不会出现问题是因为if-else-serial原则保障在单线程环境下即使重排序也不会改变运行的结果;但是它并没有规定多线程环境下。

重排序分类

后来的happenbefore原则提供了方案,底层通过加读写内存屏障来解决重排序的问题。重排序分为三种:

1.内存重排序:storeloadbuffer延迟同步主存

2.编译重排序:编译期间提高效率重排序

3.硬件级别重排序:硬件的指令会重排序两个互不依赖的操作(这是她以为的,其实多线程下虽然各个线程保证了不会影响运行结果但是多线程下不敢保证因为cpu调度是不能够得知的混乱的时间不能提前预知但是可以基于运行时的数据进行优化)

这三个都可以通过内存屏障来解决linux中就是通过这种来保证指令再一定条件下不能够重排序的!

重排序实现方式

本身cpu内核也有三级缓存但是性能还是耗费严重,后来加入了loadbuffer和storebuffer来提高效率但是它们不同与三级缓存本身cpu架构保证的缓存一致性协议(intel为mesi协议)。

这些新加入的buffer是异步同步到主存中的也就是:线程的写入操作会延迟更新到主存中。注意:这里并不是说mesi协议就不管用了他依然管用但是太耗费性能。

为什么呢?

因为都要不能处于同一个缓存行当中才能实现线程安全,对于处于同一个缓存行中的数据,其他线程修改后需要重新读取整个缓存行,一个缓存行的大小!因此在L1的基础上又加入了buffer延迟写入虽然不安全但是效率很高而且大部分情况下稍等一会就能获取到更新的值。(三级缓存是能够保证同步到住内存就是因为缓存一致性协议的作用)。

但是后来发现buffer不能够在用到的时候提交到主存中,因此又出现了load和StoreBuffer。当对一个变量进行读操作时必须保证所有对他的写入操作完成并且同步到主存中,进行写操作也是同样必须保证所有对这个变量的读操作结束。

因此出现了四种协议,LoadStore,LoadLoad,StoreLoad,StoreStore。

也就是说缓存一致性只是保证了同一个缓存行多线程修改保证同步,但是性能损耗严重后来又加入了各种buffer来作为缓存,但是这些新加入的缓存是异步的不是立马同步到主存中的。storbuffer和L1缓存是异步的不能保证同步。


相关文章
|
数据挖掘 开发者 索引
【Python】已解决:ValueError: If using all scalar values, you must pass an index
【Python】已解决:ValueError: If using all scalar values, you must pass an index
3389 0
|
7天前
|
人工智能 运维 安全
|
5天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
579 20
|
12天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
939 110
|
5天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。