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

基础能力系列 - 多线程1 - 内存序

C11 定义了 6 种原子操作的内存序memory order用于控制多线程中的可见性和重排序规则。如下是六种内存序的简介、特点和适用场景六种内存序一览表内存序名称描述 / 特点是否同步其他线程可见性是否禁止重排序使用场景示例memory_order_relaxed最弱序无同步无重排序限制不同步其他线程允许重排序统计计数器、自增编号等memory_order_consume数据依赖同步已废弃实际等同 acquire编译器优化误差多几乎不用memory_order_acquire获取操作防止之后操作被重排序到前面同步前写可见禁止之后操作重排序load时读取同步数据memory_order_release释放操作防止之前操作被重排序到后面同步后读可见禁止之前操作重排序store时写入同步数据memory_order_acq_rel同时具有 acquire 和 release 效果双向同步全部禁止重排序常用于fetch_add等读改写操作memory_order_seq_cst最强序全局顺序一致性所有线程可见强制全局顺序多线程安全易理解但性能最低实用说明memory_order_relaxed不做任何同步仅保证原子性。不保证其他线程看到值变化的顺序。std::atomicintx(0);x.store(1,std::memory_order_relaxed);// 线程B可能看不到memory_order_acquire常用于load操作。保证本线程对该变量之后的操作不会被提到它前面。intdata0;std::atomicboolreadyfalse;// 线程Adata42;ready.store(true,std::memory_order_release);// 线程Bwhile(!ready.load(std::memory_order_acquire));std::coutdata;// 始终能看到 data 42memory_order_release常用于store操作。保证本线程在此之前的写入对其他 acquire 线程可见。memory_order_acq_rel用于读-改-写原子操作如fetch_add、compare_exchange保证在操作前后都不能乱序counter.fetch_add(1,std::memory_order_acq_rel);memory_order_seq_cst“Sequential Consistency”最直观的并发语义保证所有线程看到的修改具有全局一致顺序对于简单并发程序是最安全选择但性能可能不理想memory_order_consume理论上只依赖“数据依赖性”但已在实践中废弃比如 gcc/clang 实际当作 acquire 处理小结Relaxed Acquire/Release Acq_Rel Seq_Cst (低同步/快) → (高同步/慢)往期精彩回顾:基础能力系列区块链知识系列密码学系列零知识证明系列共识系列公链调研系列BTC系列以太坊系列EOS系列Filecoin系列联盟链系列Fabric系列智能合约系列Token系列
http://www.rkmt.cn/news/1373315.html

相关文章:

  • 第1.6课 本周总结:跳出打工困局,打造专属个人经济体
  • 智能控制 第五章——神经网络控制论
  • 手把手教你用Python和sklearn计算MAE:从加州房价数据集到自定义业务数据
  • linux下安装rtsp流媒体服务器
  • 按量vs包年包月vs预留实例,DeepSeek计费方案选型决策树,90%团队选错了
  • 保姆级教程:在银河麒麟V10上为.NET6 Avalonia应用配置桌面图标和字体(解决‘default font familyname can‘t be null’)
  • 审计日志查不到越权操作?DeepSeek 3.5新增的RBAC-Log关联追踪能力,首次实现“行为→身份→策略→结果”四维回溯
  • 告别手动配置:详解麒麟KylinOS 2303的ky-installer.cfg配置文件,打造你的专属安装盘
  • 百度网盘倍速免费使用方法教程及APP软件下载
  • Linux 文件权限 rwx 与数字权限 755/644 彻底详解(新手必懂)
  • ThinkPad X1 Carbon摄像头罢工?别急着重装驱动,先试试这个Windows更新‘暂停大法’
  • 2026庭院烤漆门技术解析:室内烤漆门、庭院烤漆门、强化烤漆门、强化门墙柜、推拉门墙柜、无烤漆门、环保烤漆门、门墙柜一体选择指南 - 优质品牌商家
  • Codex 走中转站后,手机也能远程控制,Free 账号也能用
  • 【数据集】省级农村创业活跃度/农户创业活跃度(2005-2024年)
  • 保姆级教程:用Python手写逻辑回归,从零搞定西瓜书3.0α数据集分类
  • 小学期第二周
  • 让老将TX2重获新生:一套完整的Ubuntu 18.04 ARM版国内环境配置清单(含Fcitx输入法、清华/阿里源、VNC远程桌面)
  • 2026Q2台州经济纠纷律师:台州刑事律师/台州医疗纠纷律师/台州婚姻家事律师/台州工伤赔偿纠纷律师/台州法律顾问/选择指南 - 优质品牌商家
  • 2026小时工找工作优质服务机构推荐:工厂劳务派遣外包/工厂直招找工作/当天入职劳务派遣/日结工招聘找工作/普工劳务派遣/选择指南 - 优质品牌商家
  • 别再用文件夹硬扛了:Gemini 3.1 Pro 工作区模式,正在改变超大项目文档管理方式
  • C2000 CPU Timer 学习笔记
  • esp开发与应用(1602液晶显示屏)
  • 2026年Q2天津家族信托律师推荐:周宇律师的专业服务解析 - 2026年企业推荐榜
  • 2026年紫外线杀菌器技术解析与选型参考指南:不锈钢杀菌器、大功率紫外灯、水处理杀菌器、浸没式杀菌器、消毒杀菌器选择指南 - 优质品牌商家
  • 2026年至今,上海新风系统源头服务专家:合宜人居深度解析 - 2026年企业推荐榜
  • 2026排污许可证办理全解析:北京排水排污许可证/北京酒店特行许可证审批/城镇污水排入排水管网许可证/宾馆特行许可证/选择指南 - 优质品牌商家
  • 第一次的博客
  • Windows 批量解压 TAR 文件脚本:支持文件数量校验、断点续解压和自动跳过
  • MySQL InnoDB引擎八大核心特性详解(高频面试题)
  • 热江 - 绿色版手游官网下载:热江 - 绿色版最新官方下载渠道