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

30、memory-order-relaxed

使用C++标准库中的std::thread来创建线程,并且使用std::atomic来确保变量的原子性。

#include <iostream>
#include <thread>
#include <atomic>std::atomic<int> x = 0;     // global variable
std::atomic<int> y = 0;     // global variablevoid thread1() {int r1 = y.load(std::memory_order_relaxed); // Ax.store(r1, std::memory_order_relaxed);     // B
}void thread2() {int r2 = x.load(std::memory_order_relaxed); // Cy.store(42, std::memory_order_relaxed);     // D
}int main() {std::thread t1(thread1);std::thread t2(thread2);t1.join();t2.join();std::cout << "x: " << x.load() << ", y: " << y.load() << std::endl;return 0;
}

这个代码创建了两个线程,分别执行thread1thread2函数。std::atomic确保了对变量xy的操作是原子的。

最后,主线程等待两个线程完成,并输出变量xy的值。

http://www.lqws.cn/news/217171.html

相关文章:

  • 求解一次最佳平方逼近多项式
  • 湖北理元理律师事务所:债务优化中的民生保障实践
  • LLM 笔记:Speculative Decoding 投机采样
  • C++动态分配内存知识点!
  • Redis主从复制原理二 之 主从复制工作流程
  • Java 中 synchronized 和 ReentrantLock 的全面对比解析
  • 一些因子的解释
  • 「Java基本语法」代码格式与注释规范
  • Redis 与 MySQL 数据一致性保障方案
  • sendDefaultImpl call timeout(rocketmq)
  • 什么是高考?高考的意义是啥?
  • Burp Suite 基础
  • 第三章支线二 ·函数幻阶:语法召唤与逻辑封印
  • 快捷键的记录
  • 6.7本日总结
  • 2023年ASOC SCI2区TOP,随机跟随蚁群优化算法RFACO,深度解析+性能实测
  • PCB设计教程【大师篇】——STM32开发板电源设计(电压基准、滤波电容)
  • 基于TarNet、CFRNet与DragonNet的深度因果推断模型全解析
  • 当SAP系统内计划订单转换为生产订单时发生了什么?
  • 使用 SAM + YOLO + ResNet 检测工业开关状态:从零到部署
  • 在 Java 中!(逻辑非)和 ||(逻辑或)的优先级关系
  • Qt(part 2)1、Qwindow(菜单栏,工具栏,状态栏),铆接部件,核心部件 ,2、添加资源文件 3、对话框
  • LINUX67 FTP 3客户服务系统;FTP 上传、下载测试调试
  • 从认识AI开始-----AutoEncoder:生成模型的起点
  • STM32开发,创建线程栈空间大小判断
  • 手拉手处理RuoYi脚手架常见文问题
  • 零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
  • 【C/C++】std::vector成员函数清单
  • Global Security Market知识点总结:主经纪商业务
  • 以智能管理为基础,楼宇自控打造建筑碳中和新路径