当前位置: 首页 > news >正文

怎么说服客户做网站网站制作前期

怎么说服客户做网站,网站制作前期,网站未备案做经营被罚款,建设工程报建备案网站c 11 中为了支持并发,定义了内存序和内存一致性模型。这个概念听起来非常高深,好像是在多线程编程领域浸淫多年之后的神级程序员才能搞明白,并用明白的东西。 本文尝试用最简单的方式说清楚这个概念。因为这个概念真的超级简单,大…

c++ 11 中为了支持并发,定义了内存序和内存一致性模型。这个概念听起来非常高深,好像是在多线程编程领域浸淫多年之后的神级程序员才能搞明白,并用明白的东西。

本文尝试用最简单的方式说清楚这个概念。因为这个概念真的超级简单,大家真的被这个概念欺骗了。

我用一句话就能说清楚。内存一致性模型的本质是防止 编译器和CPU过度优化。意思是告诉 编译器和 CPU 在什么情况下,不要做乱序处理。

编译器和CPU优化

举个例子:

std::atomic<bool> valVailable(false); 
auto imptValue = computeImportantValue();   //计算值
valAvailable = true;                        //告诉另一个任务,值可用了

假设线程 A 在执行上面的代码,线程B 在轮询变量 valAvailable。当 valAvailable 变为 true 时,使用 imptValue 变量做自己的事情。

这种情况下,imptValue 变量在 valAvailable 之前被赋值就很重要了。从代码上看,这不是明摆着么?

但事实上,如果 valAvailable 不是原子变量,所有编译器看到的是给相互独立的变量的一对赋值操作。通常来说,编译器会被允许重排这对没有关联的操作。变成

valAvailable = true;                        //告诉另一个任务,值可用了
auto imptValue = computeImportantValue();   //计算值

最终造成错误。
即使编译器没有重排顺序,底层硬件也可能重排(乱序执行)(或者可能使它看起来运行在其他核心上),因为有时这样代码执行更快。

原子变量与内存序

内存序往往和原子变量一起使用。普通变量意味着内存序不重要。因此把普通变量用在并发场景是绝对的错误。

上面的代码成立还有一个保证,就是c++对原子变量的默认内存序要求是:std::memory_order_seq_cst,意味着 全局顺序一致性。在本次操作之前的所有读写操作,不允许重排到后面,后面所有的读写也不允许重排在我前面。

此外,c++ 还有另外 5 种内存序

  • std::memory_order_acq_rel:同时具有 acquire 和 release 语义
    对于当前操作:

    • 读操作:具有 acquire 语义,确保后续操作不会重排到它之前。

    • 写操作:具有 release 语义,确保前面的操作不会重排到它之后。

  • std::memory_order_release:禁止前面写操作重排到它之后,确保本线程的修改对其他线程的获取操作可见。

  • std::memory_order_acquire:禁止后续读操作重排到它之前,确保能观察到其他线程的释放操作。

  • std::memory_order_consume:保证数据依赖顺序(已不推荐使用)。

  • std::memory_order_relaxed:仅保证原子性,无顺序约束,就是说编译器和 cpu 可以随便重排,只要保证本次操作是原子的就行。

具体该怎么用,我就不讲了。知道概念就行

  1. 内存序是为了防止编译器和cpu乱序执行
  2. 内存序只结合原子变量在多线程编程下使用,普通变量没必要整这个概念。
  3. c++ atomic 变量 默认内存序设置 是禁止原子操作前后的一切重排序的,所以不懂内存序也可以随便用 atomic 而不出错。
http://www.dtcms.com/a/615597.html

相关文章:

  • 蓬莱做网站公司室内装修设计软件培训
  • 网站建设代理哪个好长沙短视频代运营公司
  • 41_FastMCP 2.x 中文文档之FastMCP客户端认证:Bearer 令牌认证详解
  • 专题学习网站开发流程诚信通国际网站怎么做
  • 自已电脑做网站c2c的典型代表有哪些
  • 成都企业网站优化营销4p
  • 网站建设优化推广杭州贵州省交通建设集团网站
  • 做淘宝美工需要知道的网站建筑设计说明万能模板
  • 建设银行招生网站搜索引擎优化管理实验报告
  • js特效网站模板下载辽宁官方网站做辣白菜
  • 网站建设初期wordpress+并发量
  • 网站建设人员叫什么科目北京seo运营
  • 隆昌网站建设网站开发工作内容
  • 配方机制(2)
  • 什么样的网站是一个成功的网站汕头集团做网站方案
  • 网站管理系统源码青岛外贸建设网站制作
  • 石家庄网站制作系统手机网页游戏排行榜2021前十名
  • 做网站需要花费那方面的钱wordpress 发布文章sql
  • 教育网站 模板自助建站平台便宜
  • 如何做网站 百度经验网站 扩展
  • 介绍自己的做的网站吗企业网站推广费用
  • 阿里建站服务建设网站的网站是什么
  • 【每天一个AI小知识】:什么是决策树?
  • 基于百度地图的网站开发黄骅港邮政编码
  • 影视网站的设计与实现洮南网站
  • 黑马程序员苍穹外卖(新手) day2
  • 四川平台网站建设方案网站建设推广优化招聘模板
  • 外包网站开发合同范本自己做网站可以用私有云吗
  • 网站名注册百度收录入口
  • 用flash做的网站网站的经典推广方法